0 / 0 / 0
Регистрация: 20.12.2010
Сообщений: 3
1

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

20.12.2010, 17:25. Показов 1326. Ответов 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
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
20.12.2010, 17:25
Ответы с готовыми решениями:

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

Почему map.find не доработают для std::find
Добрый вечер, вопрос философский о разработчиках стандарта и последующих имплементациях...

шаблон map.find()
Нужно сделать шаблон который передаст ссылку на значение по ключу. Вроде должно работать, но никак...

Ошибка в поиске find элемента из map
for (auto it = mm.find(L&quot;А&quot;); it != mm.end(); ++it) { if (it == mm.end()) {...

4
Эксперт С++
3220 / 1747 / 435
Регистрация: 03.05.2010
Сообщений: 3,867
21.12.2010, 19:59 2
А обращений к объекту map по индексу, типа
C++
1
intersect_map[0]
в вашем коде нет? При таких обращениях, если элемента с таким ключом нет, то он создается, но с пустым значением second.
0
0 / 0 / 0
Регистрация: 20.12.2010
Сообщений: 3
22.12.2010, 10:32  [ТС] 3
Через оператор [ ] идет только формирование map в самом начале.
После этого проверял на корректность значений. Все ключи корректные. И значения по ключу тоже корректные.
Однако при поиске через .find() некоторое количество раз обращение происходит удачно, а в один прекрасный момент для того же значения ключа возвращается пустой элемент.
0
Эксперт С++
3220 / 1747 / 435
Регистрация: 03.05.2010
Сообщений: 3,867
22.12.2010, 12:05 4
Цитата Сообщение от Sterling Посмотреть сообщение
Через оператор [ ] идет только формирование map в самом начале.
После этого проверял на корректность значений. Все ключи корректные. И значения по ключу тоже корректные.
Однако при поиске через .find() некоторое количество раз обращение происходит удачно, а в один прекрасный момент для того же значения ключа возвращается пустой элемент.
А что за компилятор, интересно?
0
0 / 0 / 0
Регистрация: 20.12.2010
Сообщений: 3
22.12.2010, 12:17  [ТС] 5
gcc (GCC) 4.1.2
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
22.12.2010, 12:17
Помогаю со студенческими работами здесь

Некорректная работа скрипта для звука
Здравствуйте. Делаю проект в Unity3D версии 5.0. При написании одного из скриптов появилась...

Некорректная работа тестовой программы для проверки клавиатуры
Всем доброго времени суток! Сейчас решаю задачу по созданию теста для проверки работоспособности...

Некорректная работа функции «Вид для чтения» в Mozilla Firefox
Здравствуйте. Не могу сохранить в желаемом виде страницы с использованием «Вида для чтения» в...

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


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru