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

Файлы. С файла нужно удалить слово, в котором самое большое количество РАЗНЫХ букв - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Вывести на экран таблицу значений функции http://www.cyberforum.ru/cpp-beginners/thread898748.html
Очень срочно нужна помощь!!! Надо получить 4 по программированию, никак без вашей помощи!
C++ Сформировать массив строк. Удалить из него строку начинающуюся и заканчивающуюся на одну и ту же букву Сформировать массив строк. Удалить из него строку начинающуюся и заканчивающуюся на одну и ту же букву http://www.cyberforum.ru/cpp-beginners/thread898734.html
Как перегружать оператор -> ? C++
Доброго времени суток. Есть класс: template<class T> class Auto_ptr { public: Auto_ptr(T* p) : pointer(p) { } ~Auto_ptr() { delete pointer; } T& operator*() { return *pointer; }
C++ Программы написанные на c++
Программы написанные на c++
C++ Объединение циклов http://www.cyberforum.ru/cpp-beginners/thread898707.html
Доброго времени суток! Есть объединенный цикл. Что выполняет данный цикл? И как сделать что бы был виден результат его работы? for(int i = 0; i < iN; i++){ a = b - 5; } for(int i = 0; i < iN-1; i++){ d = e * 3; }
C++ Протабулировать функцию задание протабулировать функцию! f(x,y)={x}^{3}+sqrt{y} x (-2;2) y (0;3.5) шаг 0.35 не могу протабулировать отрезок x подробнее

Показать сообщение отдельно
MrGluck
Модератор
Эксперт CЭксперт С++
6976 / 4147 / 592
Регистрация: 29.11.2010
Сообщений: 10,998
11.06.2013, 19:19     Файлы. С файла нужно удалить слово, в котором самое большое количество РАЗНЫХ букв
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
#include <fstream>
#include <vector>
#include <string>
#include <utility>
#include <algorithm>
#include <iterator>
 
typedef std::pair<std::string, int> comb; // слово и сколько в нем разных букв
typedef std::vector<comb > vec_comb;      // вектор комбинаций
 
int uniqueChars(std::string s)
{
    std::sort(s.begin(), s.end());
    return std::distance(s.begin(), std::unique(s.begin(), s.end()) );
}
 
int main()
{
    std::ifstream ifs("input.txt");
    if (!ifs) return 1;
    vec_comb v;
    for (std::string word; !ifs.eof() && ifs >> word;
        v.emplace_back(word, uniqueChars(word)) );
 
    auto it = std::max_element(v.begin(), v.end(),
        [](const comb &c1, const comb &c2) { return c1.second < c2.second; } );
    v.erase(it);
 
    ifs.close();
    std::ofstream o("input.txt");
    for (auto &word : v)
        o << word.first << " ";
}
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru