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

Удаление повторяющихся символов - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ объясните как это работает http://www.cyberforum.ru/cpp-beginners/thread432416.html
#include <iostream> #include <algorithm> using namespace std; long func (long * arr, int length) { return *min_element(arr, arr + length); } double func (double * arr, int length)...
C++ stl и полиморфизм Всем доброго времени суток, возник такой вопрос не знаю как реализовать, имеется 4 класса. Базовый Object он имеет поля x и y от него наследуется класс Enemy он имеет метод Draw -прорисовка, от... http://www.cyberforum.ru/cpp-beginners/thread432411.html
Фрагмент "авс" C++
Здравствуйте! Проверьте мою программу, где ошибка, и напишите мне под этим кодом, пожалуйста. Заранее спасибо вам! Написать программу, которая записывать строку во внешний файл и выводит на печать...
Мьютекс, не могу понять, сигналирован или нет C++
Разработать программу, состоящую из двух потоков, работающих с общими данными, первый поток вводит с клавиатуры N целых чисел (число N также вводится пользователем), второй печатает их на экран по...
C++ В чем ошибка http://www.cyberforum.ru/cpp-beginners/thread432375.html
#include <iostream> #include <string> using namespace std; int main() { string n = "Jon" string name; cin >> name; if (n == name) cout << "Строки равны" << endl;
C++ Дана последовательность чисел a1, a2, ..., an. Указать наименьшую длину числовой оси, содержащую все эти числа Помогите решить. Дана последовательность чисел a1, a2, ..., an. Указать наименьшую длину числовой оси, содержащую все эти числа подробнее

Показать сообщение отдельно
Mиxaил
533 / 438 / 37
Регистрация: 10.12.2009
Сообщений: 1,857
21.01.2012, 15:43
Это удаляем повторы:
C++
1
2
3
4
5
6
7
8
9
10
11
#include <iostream>
#include <string>
#include <algorithm>
 
int main()
{
    std::string s( "abczzhhklllllllm" );
    s.resize( std::unique( s.begin(), s.end() ) - s.begin() );
    std::cout << s << std::endl;
    return 0;
}
Добавлено через 9 минут
Вот работает, может, не совсем оптимально:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <iostream>
#include <string>
#include <map>
#include <algorithm>
 
int main()
{
    std::string s( "abczzhhklllllllm" );
    std::map < char, unsigned int > m;
    
    for( size_t index = 0; index < s.length(); m[ s[ index ] ]++, index++ );
 
    char char_max = m.begin() -> first;
 
    for( std::map < char, unsigned int >::iterator it = m.begin(); it != m.end(); ++it )
        if ( it -> second > m[ char_max ] )
            char_max = it -> first;
 
    s.erase( std::remove( s.begin(), s.end(), char_max ), s.end() ); 
    
    std::cout << s << std::endl;
    return 0;
}
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru