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

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

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

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

20.12.2010, 17:25. Просмотров 844. Ответов 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 существует и он не пустой.
В чем может быть проблема?
Спасибо.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.12.2010, 17:25     Некорректная работа .find() для map
Посмотрите здесь:
C++ Некорректная работа Map.find
C++ std::map find. Получить ключ(элемент) и как записать все данные при объявлений?
Некорректная работа программы C++
C++ Некорректная работа программы
Некорректная работа цикла for. C++
C++ Некорректная работа rand()
Некорректная работа компилятора C++
C++ Некорректная работа сложения строки
C++ Некорректная работа cin.fileget()
C++ Некорректная работа cin.getline()
C++ Шаблон функции. Некорректная работа
Некорректная работа функции pow C++

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

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

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