Что я имею в виду - мы знаем, что элементы std::map сортируются в соответствии с ключами. Итак, пусть говорят, что целые числа. Если я повторяю от std::map::begin() до std::map::end() с помощью for, гарантирует ли стандарт, что я буду последовательно перебирать элементы с ключами, отсортированными в порядке возрастания?
Пример:
std::map<int, int> map_;
map_[1] = 2;
map_[2] = 3;
map_[3] = 4;
for( std::map<int, int>::iterator iter = map_.begin();
iter != map_.end();
++iter )
{
std::cout << iter->second;
}
Гарантируется ли печать 234 или определена ли реализация?
Причина реальной жизни: у меня есть std::map с int. В очень редких ситуациях я хотел бы перебирать все элементы с ключом, превышающим конкретное значение int. Да, похоже, что std::vector будет лучшим выбором, но заметьте мои "очень редкие ситуации".
EDIT: Я знаю, что элементы std::map отсортированы. Не нужно указывать его (для большинства ответов здесь). Я даже написал это в своем вопросе.
Я спрашивал об итераторах и порядке, когда я повторяю контейнер. Спасибо @Kerrek SB за ответ.