11 / 11 / 2
Регистрация: 20.05.2011
Сообщений: 71
1

STL функторы, предикаты

20.12.2013, 12:43. Показов 1771. Ответов 3
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
У нас есть:

C++
1
std::multimap<std::string,std::string>  map;
нужно удалить все повторяющиеся ключи, используя алгоритм с предикатом.

Есть функтор , который вернет true, если ключ совпал с передаваемым параметром(параметр один - строка).
Я не знаю как его правильно реализовать

C++
1
2
3
4
5
6
7
8
9
10
11
12
class WordsThatBeginWith 
{ 
    std::pair<std::string,std::string> dict;
public: 
   // WordsThatBeginWith(std::pair<std::string,std::string> d) : dict(d)
   // { }
 
    bool operator()(std::string a) const 
    { 
        return dict.first == a; 
    } 
};
а потом нам нужно удалить ВСЕ повторяющиеся элементы (было "а б в в а", станет "б" )
C++
1
dic.erase(std::unique(dic.begin(), dic.end(), WordsThatBeginWith("a")),dic.end());
в этой строке тоже что-то не так (
Прошу помощи, плз!
0
20.12.2013, 12:43
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
20.12.2013, 12:43
Ответы с готовыми решениями:

STL, функторы
Всем привет! Вообщем есть код: #include &lt;iostream&gt; #include &lt;algorithm&gt; #include &lt;vector&gt; int main() { ...

Функторы и алгоритмы stl
Добрый день! Интересует такой вопрос. Я хочу, используя стандартный алгоритм стл for_each() и функтор, определить наибольший элемент в...

Предикаты STL
Решил вот так простенькую задачку, в условии задачи&quot; использовать указатели на функции и осортировать массив в порядке возрастания и...

3
Форумчанин
Эксперт CЭксперт С++
 Аватар для MrGluck
8216 / 5046 / 1437
Регистрация: 29.11.2010
Сообщений: 13,453
20.12.2013, 12:46 2
А если просто загнать в мап и все само собой отсеется?
0
:)
Эксперт С++
4773 / 3267 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
20.12.2013, 12:54 3
razor_ua, std::unique удаляет только смежные совпадения. А вообще, зачем строить себе проблемы, прислушайтесь к совету MrGluck.
0
11 / 11 / 2
Регистрация: 20.05.2011
Сообщений: 71
20.12.2013, 15:15  [ТС] 4
не спорю...
задание именно такое...
нужно разобраться с мультимапой...
0
20.12.2013, 15:15
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
20.12.2013, 15:15
Помогаю со студенческими работами здесь

Предикаты в STL
Здравствуйте, не могу понять что должна принимать функция в качестве унарного предиката или бинарного. Вот допустим контейнер LIST, можете...

функторы && STL
Знакомлюсь с функторами. Помогите реализовать поиск минимального числа в последовательности, средн.арифмет. в посл-ти и количество...

Предикаты\Функторы
Здравствуйте, взялся за прочтение алгоритмов STL и наткнулся на такой вопрос, что же такое Предикаты\Функторы. Определения и примеры я...

Функторы, предикаты, функциональные адаптеры, лямбда-функции
Вступление Статья ориентирована на программистов С++, поверхностно знающих/желающих узнать STL, в особенности, с использованием его...

Встроенные предикаты. Предикаты взаимодействия, размещение данных
Есть три вопроса: С равенством разобрался, вроде ничего сложного. Про предикаты нашел много инфы, но про предикаты взаимодействия и...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему

Редактор формул (кликните на картинку в правом углу, чтобы закрыть)
Опции темы

Новые блоги и статьи
Микросервис с нуля на Go с Kafka
stackoverflow 12.02.2025
Когда я впервые столкнулся с необходимостью разделить монолитное приложение на микросервисы, передо мной встал вопрос выбора правильных технологий и подходов. После долгих экспериментов с различными. . .
Микросервис с нуля на C# с RabbitMQ
stackoverflow 12.02.2025
Переход от монолитной архитектуры к микросервисной - это не просто модное веяние, а закономерный этап эволюции программных систем. В отличие от монолита, где все компоненты тесно связаны между собой. . .
Docker для начинающих
stackoverflow 12.02.2025
В современном мире разработки программного обеспечения все чаще возникает необходимость быстро и надежно разворачивать приложения в различных средах. Разработчики постоянно сталкиваются с проблемой. . .
Создание бота для Телеграм на C#
stackoverflow 12.02.2025
В современном мире корпоративных коммуникаций Telegram-боты становятся незаменимым средством автоматизации бизнес-процессов и взаимодействия с сотрудниками. Как создать такого бота, который сможет. . .
Операторы сравнения (== и ===) в JavaScript
hw_wired 12.02.2025
JavaScript предоставляет два основных оператора сравнения - оператор нестрогого равенства (==) и оператор строгого равенства (===). На первый взгляд они могут показаться очень похожими, но их. . .
Определение адреса, откуда репозиторий Git был клонирован
hw_wired 12.02.2025
Система контроля версий Git хранит всю информацию о репозитории в специальной директории . git, включая данные об удаленных источниках. Эта информация необходима для синхронизации изменений между. . .
Объединение нескольких коммитов Git в один
hw_wired 12.02.2025
Представьте, что вы работаете над новой функциональностью и создали десяток небольших коммитов: исправление опечатки, форматирование кода, добавление комментариев, реализация основной логики. Каждый. . .
Как добавить локальную ветку в удалённый репозиторий Git
hw_wired 12.02.2025
Локальная ветка в Git - это изолированная линия разработки, существующая только на вашем компьютере. Представьте себе дерево с множеством веток - каждая ветка может расти в своем направлении, не. . .
Статическое отражение в C++
stackoverflow 12.02.2025
Статическое отражение представляет собой мощный механизм, позволяющий программам анализировать и манипулировать своей собственной структурой во время компиляции. Эта возможность открывает. . .
C++ в 21 веке - Бьярне Страуструп
stackoverflow 12.02.2025
В современном мире разработки программного обеспечения C++ продолжает оставаться одним из ключевых языков программирования, несмотря на свой солидный возраст - более 45 лет с момента создания. За это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru