Я имею в виду, что мы знаем, что элементы 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 за ответ.