Форум программистов, компьютерный форум, киберфорум
Наши страницы

Количество повторяющихся слов - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Ввести n слов с консоли. Найти количество слов, содержащих только символы латинского алфавита, а среди них – количество слов с равным числом гласных http://www.cyberforum.ru/cpp-beginners/thread1097909.html
Ввести n слов с консоли. Найти количество слов, содержащих только символы латинского алфавита, а среди них – количество слов с равным числом гласных и согласных букв.
C++ Написать программы используя строки в с++ 1) Ввести n слов с консоли. Найти количество слов, содержащих только символы латинского алфавита, а среди них – количество слов с равным числом гласных и согласных букв. 2) Все слова в строке... http://www.cyberforum.ru/cpp-beginners/thread1097887.html
C++ Заполнение матрицы
Нужно заполнить матрицу таким образом. Не получается создать правильный алгоритм.
C++ Составление программ на использование структур данных
программа должна осуществлят обработку массива структур по заданному варианту. Массив структур должен содержать не менее 5-ти элементов. Массив ввести с клавиатуры. Программа должна выдавать...
C++ Посоветуйте книгу по С++ для новичков. http://www.cyberforum.ru/cpp-beginners/thread1097855.html
Здравствуйте. Посоветуйте книгу по С++ для новичков. Хочу с 0 выучить, мне нужна такая, чтобы въехать)
C++ Звук в консоли Возможно ли это? Если да то как это сделать? подробнее

Показать сообщение отдельно
DiffEreD
1431 / 768 / 95
Регистрация: 21.06.2011
Сообщений: 1,740
Записей в блоге: 2
16.02.2014, 17:18
hativuno, вряд ли кто то будет разбираться в твоем коде, но подобные задачи лучше решать с помощью SLT(map, set, algorithm и т. д.). Вот эдакое решение в голову пришло (код С++11):
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
#include <iostream>
#include <iomanip>
#include <iterator>
#include <fstream>
#include <string>
#include <algorithm>
#include <unordered_map>
#include <unordered_set>
#include <vector>
 
using input = std::istream_iterator<std::string>;
using Pair = std::pair<std::string, std::string::size_type>;
 
int main()
{
   std::fstream ifs("file.txt");
   if (!ifs.is_open())
   {
      std::cerr << "Error opening file!\n";
      return 1;
   }
 
   std::unordered_multimap<std::string, std::string::size_type> words;
   std::transform(input(ifs), input(), std::inserter(words, words.begin()),
                  [](const std::string& str){ return std::make_pair(str, str.size()); });
 
   std::cout << "Number of words: " << words.size() << "\n\n";
   std::cout << "Length of words:\n\n";
   for (auto& word : words) std::cout << std::setw(20) << std::left << word.first << word.second << "\n";
 
   std::vector<std::string> v;
   std::transform(words.begin(), words.end(), std::back_inserter(v),
                  [](const Pair& p){return p.first;});
   auto pos_of_unique = std::unique(v.begin(), v.end());
 
   std::unordered_set<std::string> s(pos_of_unique, v.end());
 
   std::cout << "\n\nAll repeating words: " << (std::distance(pos_of_unique, v.end()) + s.size()) << "\n";
 
   std::cout << "\nDone." << std::endl;
   return 0;
}
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru