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

std::map, std::vector и порядок обхода коллекции - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 26, средняя оценка - 4.92
SQReder
 Аватар для SQReder
6 / 6 / 1
Регистрация: 04.07.2009
Сообщений: 50
21.04.2011, 19:53     std::map, std::vector и порядок обхода коллекции #1
Здравствуйте, уважаемые!
Вопрос следующий - если я сохраняю какие-то значения в map или вектор, то всегда ли я буду получать тот-же порядок, обходя контейнер итератором?

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
template <class T> void func(T t);
 
// -----
std::map <int,int> map;
for (std::map <int,int> ::iterator it = map.begin(); it != map.end(); ++it); // обход итератором
for_each(map.begin(), map.end(), func); // обработка алгоритмом
 
 
// -----
std::vector <int> vector>;
 
for (unsigned int i = 0; i <= vector.size(); ++i); // обход счетчиком
for (std::vector <int> ::iterator it = vector.begin(); it != vector.end(); ++it); // обход итератором
for_each(vector.begin(), vector.end(), func); // обработка алгоритмом
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ma3a
Эксперт C++
612 / 456 / 31
Регистрация: 28.01.2011
Сообщений: 605
21.04.2011, 19:58     std::map, std::vector и порядок обхода коллекции #2
В vector - да. В map - вероятно, нет, так как при добавлении элементов туда контейнер автоматически сортируется и итератор будет обходить контейнер уже в отсортированном порядке.
ForEveR
Модератор
Эксперт C++
 Аватар для ForEveR
7927 / 4709 / 318
Регистрация: 24.06.2010
Сообщений: 10,524
Завершенные тесты: 3
21.04.2011, 22:16     std::map, std::vector и порядок обхода коллекции #3
Если вопрос про for_each и обход итератором - разницы нет.
SQReder
 Аватар для SQReder
6 / 6 / 1
Регистрация: 04.07.2009
Сообщений: 50
21.04.2011, 22:21  [ТС]     std::map, std::vector и порядок обхода коллекции #4
Цитата Сообщение от ForEveR Посмотреть сообщение
Если вопрос про for_each и обход итератором - разницы нет.
да, ибо это одно и то-же по сути.
Yandex
Объявления
21.04.2011, 22:21     std::map, std::vector и порядок обхода коллекции
Ответ Создать тему
Опции темы

Текущее время: 23:08. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru