Re: метод begin() у map возвращает NULL!!!
От: Sergey Россия  
Дата: 17.11.06 15:24
Оценка:
> Подскажите пожалуйста — в каком случае метод begin() может возвращать итератор с node == NULL?
>
> std::map<TDateTime, int> m;
> 
> // заполнение данными
> // ...
> //
> 
> std::map<TDateTime, int>::iterator i = m.begin();
> while ( i != m.end() )
> {
>   // 
>   // что-то делаем
>   //
>   ++i;
> }
>

> так вот при первом выполнении строки с while выпадаем по эксепшену AccessViolation. Если под дебагером посмотреть итератор перед выполнением while, то он содержит NULL. При этом в мапе порядка 12 записей!

Такое может быть, если оператор < для класса TDateTime не удовлетворяет условию strict weak ordering. Соответствеено, выкладывайте код этого оператора.
Posted via RSDN NNTP Server 2.0
Одним из 33 полных кавалеров ордена "За заслуги перед Отечеством" является Геннадий Хазанов.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.