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

Поиск популярного триплета. Конструктивная критика - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Вместо включения используйте закрытое наследование http://www.cyberforum.ru/cpp-beginners/thread1233787.html
Здравствуйте. Изучаю С++ по книге Прата С. "Язык программирования С++. Лекции и упражнения". Столкнулся с проблемой. Есть задание: Выполните еще раз упражнение 1, но вместо включения используйте...
C++ Обеспечить работу приложения с БД Firebird на других ПК Добрый день. Есть программа с бд на firebird, как скомпилировать программу так, что бы на компьютере где нет firebird она запускалась и работала? http://www.cyberforum.ru/cpp-beginners/thread1233780.html
C++ Изучение С++ с нуля
Всем привет. Вчера зарегистрировался на форуме. Хочу изучить C++, но нет никаких знаний в этом направлении. Какие книги можно почитать абсолютному начинающему, который вообще не в курсе что такое...
C++ Конкатенация строк: Зачем строки создаются в динамической памяти?
Есть программа, которая делает конкатенацию строк. #include <iostream> using namespace std; char* Concatenate(char* string1, char* string2) { int lengthString1 = GetLength(string1); int...
C++ Помогите найти ошибку в решении биквадратного уравнения http://www.cyberforum.ru/cpp-beginners/thread1233710.html
Здравствуйте,написал код,проблема в том,если выполняется строка 31,то и всегда будет выполнятся строка под номером 39,как это исправить? писал по алгоритму,должно быть все правильно. Программа...
C++ Как обратиться к свойству класса Нубский вопрос, вот код: #include "stdafx.h" #include <iostream> using namespace std; class HelloClass подробнее

Показать сообщение отдельно
Voivoid
675 / 278 / 12
Регистрация: 31.03.2013
Сообщений: 1,339
25.07.2014, 14:49
Цитата Сообщение от ForEveR Посмотреть сообщение
Как-то так, чуть покороче
Уже лучше, мой вариант:

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
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
#include <fcntl.h>
#include <io.h>
#include <stdio.h>
 
#include <windows.h>
 
#include <algorithm>
#include <functional>
#include <iostream>
#include <map>
#include <string>
#include <sstream>
#include <vector>
 
namespace {
  const int g_triplet_size = 3;
}
 
std::vector<std::wstring> break_word_to_triplets( const std::wstring& a_str ) {
  if( a_str.size() < g_triplet_size ) {
    return std::vector<std::wstring>();
  }
 
  std::vector<std::wstring> triplets;
  for( std::size_t i = 0; i <= a_str.size() - g_triplet_size; ++i ) {
    triplets.push_back( a_str.substr( i, g_triplet_size ) );
  }
 
  return triplets;
}
 
std::vector<std::wstring> break_sentence_to_triplets( std::wstring a_str ) {
  std::transform( a_str.cbegin(), a_str.cend(), a_str.begin(), &tolower );
  std::vector < std::wstring > triplets;
 
  std::wistringstream ss( a_str );
  std::wstring str;
  while( ss >> str ) {
    auto word_triplets = break_word_to_triplets( str );
    triplets.insert( triplets.end(), std::make_move_iterator( word_triplets.begin() ), std::make_move_iterator( word_triplets.end() ) );
  }
 
  return triplets;
}
 
int main() {
 
  _setmode( _fileno( stdout ), _O_U8TEXT );
  ::SetConsoleOutputCP( CP_UTF8 );
 
  std::wstring input = L"Карл у Клары украл кораллы, а Клара у Карла украла кларнет";
  auto triplets = break_sentence_to_triplets( input );
  typedef std::map<const std::wstring, int> TripletMap;
  TripletMap map;
  for( const auto& triplet : triplets ) {
    map[ triplet ] += 1;
  }
 
  auto iter = std::max_element( map.cbegin(), map.cend(), std::bind( std::less<int>(), std::bind( &TripletMap::value_type::second, std::placeholders::_1 ), std::bind( &TripletMap::value_type::second, std::placeholders::_2 ) ) );
  std::wcout << iter->first << L" : " << iter->second << L"\n";
 
  return 0;
}
Цитата Сообщение от Aloir Посмотреть сообщение
2. для функцииIsCharAlpha
Если же isalpha
2
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru