MiThEoN
|
||||||
1 | ||||||
STL :: map16.10.2011, 18:07. Показов 9428. Ответов 20
Метки нет (Все метки)
Столкнулся с такой проблемой:
Нужно вставить в отсортированную map-таблицу элемент. Использую:
Может я как бы не правильно использовал функцию, или мап для сортировки не подходит?
0
|
16.10.2011, 18:07 | |
Ответы с готовыми решениями:
20
Map stl STL map stl map Вопрос об map STL |
Заблокирован
|
|
16.10.2011, 18:16 | 2 |
Контейнер std::map вставляет элементы в то место, которое соответствует условию упорядоченности элементов для заданного контейнера std::map. Так что вы можете указать итератор вставки, но контейнер поместит новый элемент совсем в другое место.
Посмотрите описание метода insert для std::map, особенно возвращаемое этим методом значение, и вам все станет ясно!
0
|
Заблокирован
|
|
16.10.2011, 19:01 | 4 |
Я не понял, что вы имеете в виду под обращением к i-ому элементу, но я довольно ясно сказал, что std::map помещает элементы согласно условию упорядочности (по умолчанию это условие std::less). Поэтому map ваш итератор принимает лишь к сведению, а новый элемент может оказаться совершенно в другом месте контейнера.
Я вам еще раз настоятельно рекомендую почитать описание метода insert для контейнера std::map, в частности, возвращаемое им значение.
0
|
5828 / 3479 / 358
Регистрация: 08.02.2010
Сообщений: 7,448
|
|
16.10.2011, 19:10 | 8 |
отображение (map) - это не массив и не таблица, не последовательный контейнер. Доступ в нем происходит не по индексу, а по ключу. Место, куда помещается новая пара (ключ, значение) зависит от внутренней реализации отображения, а не от твоего желания. См. в описании метода insert:
Код
position Position of the first element to be compared for the insertion operation. Notice that this does not force the new element to be in that position within the map container (elements in a set always follow a specific ordering), but this is actually an indication of a possible insertion position in the container that, if set to the element that precedes the actual location where the element is inserted, makes for a very efficient insertion operation. iterator is a member type, defined as a bidirectional iterator type. Код
Notice that this does not force the new element to be in that position
1
|
Заблокирован
|
|
16.10.2011, 19:11 | 9 |
А что делать, если вы с первого раза не понимаете, что вам пишут?! И, что вам вообще лень даже почитать о том методе, который вы используете! Вы похожи на человека, который сам не понимает, что он делает, то есть совершенно на неадекватного человека. В конце концов, почитайте описание метода insert для map. Вам сколько раз это надо повторить?!!!
0
|
MiThEoN
|
|
16.10.2011, 19:15 [ТС] | 10 |
Прошу прощения, что не доглядел что в операторе [] используется ключ.
Добавлено через 2 минуты Так, будьте добры пожалуйста, опишите как мне(к примеру) вывести на экран значения в упорядоченном виде
0
|
5828 / 3479 / 358
Регистрация: 08.02.2010
Сообщений: 7,448
|
|
16.10.2011, 19:19 | 12 |
VASSUV, в отображении в упорядоченном виде хранятся не значения, а ключи
1
|
Заблокирован
|
|
16.10.2011, 19:22 | 13 |
У вас и так значения в map находятся в упорядочном виде. Это конечно при условии, что вы хотите сохранить этот порядок при выводе на экран.
Самое простое - это использовать стандартный алгоритм std::copy, объявленный в заголовочном файле <algorithm>, либо делайте это в цикле самостоятельно. Вы можете получить начальный итератор контейнера (например, MyMap.begin() ) и конечный ( MyMap.end() ), и вывести все элементы из этого диапазона.
1
|
MiThEoN
|
||||||
16.10.2011, 19:43 [ТС] | 15 | |||||
Кусок моей функции
0
|
5828 / 3479 / 358
Регистрация: 08.02.2010
Сообщений: 7,448
|
|
16.10.2011, 19:47 | 16 |
1
|
5828 / 3479 / 358
Регистрация: 08.02.2010
Сообщений: 7,448
|
||||||
16.10.2011, 19:59 | 18 | |||||
чтобы не быть голословным, вот пример:
1
|
kravam
|
16.10.2011, 20:02
#19
|
Не по теме: Чудесная книга по STL Л.Аммерааль - STL для программистов на C++, на русском.
1
|
VASSUV
|
16.10.2011, 20:16
[ТС]
STL :: map
#20
|
Не по теме: Не хочу Вас всех огорчать, из-за того что выражал свою упрямость и не смог выразить свою мысль, ибо я это все уже делал до того чтобы обратится сюда. Так что всем спасибо. Не по теме: И придется мне упорядочивать ключи так что - бы по ним были упорядочены значения
0
|
16.10.2011, 20:16 | |
Не могу разобраться с map(STL) STL. Map, vector. Строки Сложение двух STL map Примеры алгоритмов для STL map Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |