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

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

Войти
Регистрация
Восстановить пароль
 
Sterling
0 / 0 / 0
Регистрация: 20.12.2010
Сообщений: 3
#1

Некорректная работа .find() для map - C++

20.12.2010, 17:25. Просмотров 858. Ответов 4
Метки нет (Все метки)

Доброго времени суток.
Столкнулся с такой проблемой.

имеется:
std::map<int, CCF_sample*> intersect_map;

где CCF_sample это struct

При последовательном просмотре элементов в цикле, все значения корректны.
std::map<int, CCF_sample*>::iterator itt;
for(itt = intersect_map.begin(); itt!=intersect_map.end(); itt++)
itt->second-> корректные значения полей структур

Далее ищу конкретный элемент по значению ключа int ID;
std::map<int, CCF_sample*>::iterator it;
it = intersect_map.find(ID);

Для одного и того же значения ID сто раз все проходит на ура, а на сто первый раз
получаемая структура заполнена нулевыми (дефолтными) значениями.
При этом элемент map с данным ID существует и он не пустой.
В чем может быть проблема?
Спасибо.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.12.2010, 17:25
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Некорректная работа .find() для map (C++):

Некорректная работа Map.find - C++
Всем привет! Есть такой код. однако при использовании rand() для создания экземпляров map.find работает некорректно (находит то, чего нет)....

std::map find. Получить ключ(элемент) и как записать все данные при объявлений? - C++
Вопрос первый: как получить ключ контейнера map по данным? например: // id, name std::map&lt;int, string&gt; BookMap; BookMap bookmap; ...

Некорректная работа _getch() - C++
При очень быстром нажатии двух клавиш подряд _getch() ловит два символа. И за-за этого программа работает нестабильно. Это фиксится?

Некорректная работа программы - C++
Суть программы в том, что есть записанные в файле слова с ответами (разделены &quot;\t\t&quot;). Программа считывает поочереди строки, разделяет ее...

Некорректная работа программы - C++
Добрый день! Я попытался решить задачу № 5 &quot;Статистика&quot; с сайта acmp.ру. Текст задачи: Вася не любит английский язык, но каждый...

Некорректная работа цикла for. - C++
Ниже приведен код программы, вычисляющей по заданному n значение n!. Прошу объяснить, почему программа выдает отрицательные числа порядка...

4
Mr.X
Эксперт С++
3050 / 1695 / 265
Регистрация: 03.05.2010
Сообщений: 3,867
21.12.2010, 19:59 #2
А обращений к объекту map по индексу, типа
C++
1
intersect_map[0]
в вашем коде нет? При таких обращениях, если элемента с таким ключом нет, то он создается, но с пустым значением second.
0
Sterling
0 / 0 / 0
Регистрация: 20.12.2010
Сообщений: 3
22.12.2010, 10:32  [ТС] #3
Через оператор [ ] идет только формирование map в самом начале.
После этого проверял на корректность значений. Все ключи корректные. И значения по ключу тоже корректные.
Однако при поиске через .find() некоторое количество раз обращение происходит удачно, а в один прекрасный момент для того же значения ключа возвращается пустой элемент.
0
Mr.X
Эксперт С++
3050 / 1695 / 265
Регистрация: 03.05.2010
Сообщений: 3,867
22.12.2010, 12:05 #4
Цитата Сообщение от Sterling Посмотреть сообщение
Через оператор [ ] идет только формирование map в самом начале.
После этого проверял на корректность значений. Все ключи корректные. И значения по ключу тоже корректные.
Однако при поиске через .find() некоторое количество раз обращение происходит удачно, а в один прекрасный момент для того же значения ключа возвращается пустой элемент.
А что за компилятор, интересно?
0
Sterling
0 / 0 / 0
Регистрация: 20.12.2010
Сообщений: 3
22.12.2010, 12:17  [ТС] #5
gcc (GCC) 4.1.2
0
22.12.2010, 12:17
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.12.2010, 12:17
Привет! Вот еще темы с ответами:

Некорректная работа rand() - C++
В общем вот кусок кода и картинкой его реализация: #include &lt;stdio.h&gt; #include &lt;conio.h&gt; #include &lt;stdlib.h&gt; #include &lt;time.h&gt; ...

Некорректная работа компилятора - C++
простая схема для метода пузырькового упорядочения /* * Проект 4-1. Метод пузырькового * упорядочения. */ #include...

Некорректная работа программы - C++
Помогите, пожалуйста, понять почему не работает программа. Ввод предложения работает, однако после нажатия клавиши Enter инвертированный...

Некорректная работа функции pow - C++
Доброго времени суток. задали в универе написать прогу которая решала б кубическое уравнение.В расчетных формулах использовал функцию pow...


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

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

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