![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| Rutti |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 225 Регистрация: 25.7.2004 Репутация: нет Всего: нет |
Создаю map<string, string>.
Порядок вывод содержимого получается почему-то зависим от содержимого map. Т.е. если первой парой будет "Ааааааа" и "Ввввввввв", а второй "Ааааава Ааааа" и "Ввв", то выведуться они так как поступали в map. А если ввод пар поменять местами порядок их вывода не поменяется. Как так? |
|||
|
||||
| Annihilator |
|
|||
![]() bytegrinder ![]() ![]() Профиль Группа: Участник Сообщений: 493 Регистрация: 21.11.2006 Где: Омск Репутация: 1 Всего: 3 |
Ну так map же ассоциативный контейнер, а не последовательный, поэтому имеет место автоматическая сортировка содержимого.
-------------------- Если вы не можете сделать хоpошyю пpогpаммy, сделайте, чтобы она по кpайней меpе выглядела хоpошо |
|||
|
||||
| mes |
|
|||
|
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 144 Всего: 250 |
дело не в том что он ассоциативный, а в том что сортируеммый. |
|||
|
||||
| Rutti |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 225 Регистрация: 25.7.2004 Репутация: нет Всего: нет |
Хорошо. И как тогда осуществлять контроль за соответствием заполнения и вывода?
|
|||
|
||||
| W4FhLF |
|
|||
![]() found myself ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2831 Регистрация: 2.12.2006 Репутация: 20 Всего: 121 |
Если хочешь, чтобы элементы хранились точно в том порядке, в каком были добавлены, необходимо использовать другой контейнер.
-------------------- "Бог умер" © Ницше "Ницше умер" © Бог |
|||
|
||||
| Annihilator |
|
|||
![]() bytegrinder ![]() ![]() Профиль Группа: Участник Сообщений: 493 Регистрация: 21.11.2006 Где: Омск Репутация: 1 Всего: 3 |
-------------------- Если вы не можете сделать хоpошyю пpогpаммy, сделайте, чтобы она по кpайней меpе выглядела хоpошо |
|||
|
||||
| mes |
|
|||
|
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 144 Всего: 250 |
Во первых эта фраза относится только к стловским контейнерам, а не к любому ассоциативному.. Во вторых смена порядка , зависит именно от сортируемости, а не от ассоциавности.. например в сортируемом векторе тоже не будет сохранен порядок элементов относительно их заполнения. |
|||
|
||||
| jonie |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5613 Регистрация: 21.8.2005 Где: Владимир Репутация: 15 Всего: 118 |
в где написано что std::map чета сортирует?имхо просто он так реализован. никто не гарантирует что порядок будет сохранен, впрочем, как и не исключает этого (по крайней мере я такого не видел в стандарте).
-------------------- Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет... |
|||
|
||||
| vinter |
|
|||
![]() Explorer ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2735 Регистрация: 1.4.2006 Где: Н.Новгород Репутация: 13 Всего: 56 |
||||
|
||||
| cutwater |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 592 Регистрация: 24.6.2008 Репутация: 1 Всего: 10 |
В основе работы map лежит бинарное дерево, которое по определению является отсортированной структурой представления данных
|
|||
|
||||
| bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 63 Всего: 196 |
Map is a Sorted Associative Container
Тут конечно не написано, что последовательный доступ к элементам будет давать отсортированную последовательность... Но и не сказано так же, что порядок следования будет в порядке добавления. |
|||
|
||||
| mes |
|
|||
|
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 144 Всего: 250 |
||||
|
||||
| Rutti |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 225 Регистрация: 25.7.2004 Репутация: нет Всего: нет |
all
Большое спасибо за обсуждение. Но решения я так и не понял |
|||
|
||||
| Mayk |
|
|||
![]() ^аВаТаР^ сообщение>> ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2616 Регистрация: 22.5.2005 Где: за границей разум а Репутация: 45 Всего: 134 |
Если под stl'ом, как это обычно бывает, понимать std либу, то нет, не применима. Смотреть std::tr1::unordered_map. Ассоциативнее некуда. И неотсортированнее некуда[привет хеш]
Используй std::vector<std::pair<std::string, std::string> > или что то аналоигичное и будет тебе счастье. ну можно смотреть ещё в сторону boost::multi_index. Это сообщение отредактировал(а) Mayk - 3.9.2008, 12:55 -------------------- Здесь был кролик. Но его убили. Человеки < кроликов, йа считаю. |
|||
|
||||
| vinter |
|
|||
![]() Explorer ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2735 Регистрация: 1.4.2006 Где: Н.Новгород Репутация: 13 Всего: 56 |
где кроме патченной 2008 студии есть tr1? книга писалась за долго, до появления tr1 |
|||
|
||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |