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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
AnreyKazakov
Заблокирован
#1

Что на выходе у функции insert ? - C++

28.09.2012, 12:02. Просмотров 416. Ответов 1
Метки нет (Все метки)

В учебнике предлагают такой способ подсчета слов одинаковых, !именно с пом итератора:

C++
1
2
3
4
5
map<string,int> m;
    while(cin>>str){
        pair<map<string,int>::iterator,bool> p=m.insert(make_pair(str,1));
        if(!p.second){++p.first->second;}
        }
Но, он мне не совсем понятен...
1. Каждый раз... объявляем пару (итератор карты, булевое значение). буль=0 я думаю в кажд итерации.
2. инициализируем пару "!" а вот тут не ясно... чем?
\\понятно что справа в карту вставляем элемент с ключем слова str и значением 1.
3. смотрим буль у пары, если 1, то увеличиваем, тут все ясно.

Вопрос только в одном что на выходе-то у m.insert(...) ?

почему компелятор меня материт, если я проверяю таким способом....
C++
1
if(!m.insert(make_pair(str,1))){...}
Попутно вопрос =) где сидит make_pair, в <map> или в <utility>?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.09.2012, 12:02
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Что на выходе у функции insert ? (C++):

Как работает функция insert(то есть что надо отправлять что бы строка s вставлялась в строку s1)? - C++
Добрый день.Подскажите пожалуйста как работает функция insert(то есть что надо отправлять что бы строка s вставлялась в строку s1).Заранее...

Что будет на выходе, не компилирует? - C++
#include &lt;stdio.h&gt; void p(int x) { if(x) { p(x-1); printf(&quot;x=%d\n&quot;,x); }) void main() { p(4); ...

при выходе из функции счетчик обнуляется - C++
Добрый день всем. Есть такой кусок кода: int count1=1; int count2=10; ForwardLabeling_0(imageBin, imageLabel, k); ...

Выполенение функции при выходе из программы - C++
Есть ли в с++ (консольное приложение ) какой нибудь метод который бы выполнялся после нажатия грубо &quot;Крестика&quot; т.е выход из программы . У...

Односвязные списки: нужно ли при выходе из функции возвращать голову? - C++
Здравствуйте. Верю, что когда-то здесь на этот вопрос давался ответ, но я не нашел. Скажите, пожалуйста, вот у меня изначально голова...

Как передать массив в функцию так, чтобы при выходе из функции он не изменялся? - C++
Задачка: есть строка, которая состоит из символов. Символы соединяються в слова, которые оттделены друг от друга одним или несколькими...

1
Andsteadur
153 / 137 / 3
Регистрация: 23.05.2009
Сообщений: 275
28.09.2012, 12:23 #2
insert(x) возвращает std :: pair итератора и булевого типа. Итератор указывает на элемент map, который имеет ключ x->first. Булевый тип указывает был ли добавлен элемент x(true если добавлен)

make_pair находится в utility

Добавлено через 4 минуты
Цитата Сообщение от AnreyKazakov Посмотреть сообщение
почему компелятор меня материт, если я проверяю таким способом....
C++
1
if(!m.insert(make_pair(str,1))){...}
а почему бы ему не материть? insert вернул пару, а для нее не определен оператор !

Добавлено через 4 минуты
http://liveworkspace.org/code/c07b39f01735ebfe066c958f2ddea488
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.09.2012, 12:23
Привет! Вот еще темы с ответами:

Что выполняет эта строка: res.insert? - C++
res.insert(res.begin(), ((Number &gt;&gt; i) &amp; 0x01) + 48); Добавлено через 53 секунды мне не понятны функции опишите что к чему

Нужна реализация функции std::vector::insert() - C++
Нужна реализация функции std::vector::insert() 1)iterator insert (iterator position, const value_type&amp; val); 2) void insert (iterator...

Подскажите что значит insert, где найти синтаксис - C++
Подскажите что значит insert, где найти синтаксис text.insert(text.size(),line); //добавить строку ...

Нюансы синтаксиса: что означает запись po.npos; s.erase; s.insert ? - C++
Что в контексте этого кода значат po.npos; s.erase; s.insert ? if(po!=std::string::npos) { s.erase(po,s1.length()); ...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru