Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 47, средняя оценка - 4.87
VASSUV
MiThEoN
412 / 278 / 15
Регистрация: 31.10.2009
Сообщений: 418
Записей в блоге: 2
Завершенные тесты: 1
#1

STL :: map - C++

16.10.2011, 18:07. Просмотров 6632. Ответов 20
Метки нет (Все метки)

Столкнулся с такой проблемой:
Нужно вставить в отсортированную map-таблицу элемент.
Использую:
C++
1
2
myMap.insert(myIterator,pair<type1, type2>(val1,val2) );
\\Итератор указывает на тот элемент, за место которого нужно было вставить новый элемент
Но во время отладки увидел что insert добавляет все в конец таблицы, хотя нужно было в середину.

Может я как бы не правильно использовал функцию, или мап для сортировки не подходит?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.10.2011, 18:07
Здравствуйте! Я подобрал для вас темы с ответами на вопрос STL :: map (C++):

stl map - C++
где можно прочитать о stl map? подскажите книги..

STL map - C++
Вопрос:как мне узнать что не создавался map с заданым str? #include &lt;iostream&gt; #inlclude &lt;map&gt; #include &lt;string&gt; using namespace...

Map stl - C++
Не могу понять, почему не находит через h1.find(argv). когда argv == &quot;-o&quot; vs пишет &quot;itr = (0xcdcdcdcd &lt;Ошибка при чтении символов...

Вопрос об map STL - C++
Как вивести map? list&lt;int&gt; l; for (int i=1; i&lt;=5; i++) l.push_back(i); map&lt;int,list&lt;int&gt;&gt; a; int d = 9; int f = 5; ...

STL. Map, vector. Строки - C++
Здравствуйте. Почти не знаком с STL. Имеется вектор строк. Нужно найти частоту использования каждой буквы. Я уже который...

Не могу разобраться с map(STL) - C++
Недавно понадобилось использование ассоциативного массива map(STL), дабы сократить код программы. Но возникли сложности. В кратце в...

20
Nameless One
Эксперт С++
5775 / 3425 / 255
Регистрация: 08.02.2010
Сообщений: 7,448
16.10.2011, 19:47 #16
Цитата Сообщение от VASSUV Посмотреть сообщение
И скажите наконец что, мапы ни упорядочеваются ни в коем случае
они упорядочиваются по ключу
1
Сыроежка
Заблокирован
16.10.2011, 19:54 #17
Цитата Сообщение от VASSUV Посмотреть сообщение
Кусок моей функции
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
int k = 0;
type1 y = type1(/*тут что нибудь есть*/);
type2 x = type2(/*тут что нибудь есть*/);
map<type1, type2>::iterator i = myMap.begin();
while(i != mylist.end()){
    if(x < i->second){
        i++;
        k++;
    }else{
        mylist.insert(i,pair<type1, type2>(y,x) );// <- значит вот эта штука не сработает для упорядочивания?!!!
        return k;
    }
}
myMap.insert(pair<type1, type2>(y,x));
return k;
И скажите наконец что, мапы ни упорядочеваются ни в коем случае, либо до этого были лишь пустые слова(не хотел обидеть)...
Ваша проблема в вашем невежестве и лени. Вы не хотите потратить 5 минут, чтобы почитать о std::map, прежде чем отнимать время у других.
1
Nameless One
Эксперт С++
5775 / 3425 / 255
Регистрация: 08.02.2010
Сообщений: 7,448
16.10.2011, 19:59 #18
Цитата Сообщение от Nameless One Посмотреть сообщение
они упорядочиваются по ключу
чтобы не быть голословным, вот пример:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#include <iostream>
#include <map>
#include <string>
 
// ключи - строки, значения - числа
// над ключами задан лексикографический порядок:
// "a" < "ab" < "ba" < "bb" < "c"
 
int main()
{
    std::map<std::string, int> map;
 
    map["c"] = 1;
    map["ba"] = 2;
    map["ab"] = 3;
    map["bb"] = 4;
    map["a"] = 5;
 
    // вывод значений map в порядке, заданном их ключами
 
    for(std::map<std::string, int>::const_iterator it = map.begin();
    it != map.end();
    ++it)
    std::cout << "Key: " << it->first << "\tValue: " << it->second << std::endl;
 
    return 0;
}
Как видно, вывод происходит в порядке возрастания ключа
1
kravam
16.10.2011, 20:02
  #19

Не по теме:

Чудесная книга по STL Л.Аммерааль - STL для программистов на C++, на русском.
Уж охоту изучать STL точно не отобьёт. В сети есть. И даже примеры из книги в сети есть, ничё вручную набивать не надо...

1
VASSUV
16.10.2011, 20:16  [ТС]
  #20

Не по теме:

Не хочу Вас всех огорчать, из-за того что выражал свою упрямость и не смог выразить свою мысль, ибо я это все уже делал до того чтобы обратится сюда. Так что всем спасибо.



Не по теме:

И придется мне упорядочивать ключи так что - бы по ним были упорядочены значения

0
Nameless One
Эксперт С++
5775 / 3425 / 255
Регистрация: 08.02.2010
Сообщений: 7,448
16.10.2011, 20:18 #21
Цитата Сообщение от VASSUV Посмотреть сообщение
И придется мне упорядочивать ключи так что - бы по ним были упорядочены значения
это происходит автоматически при вставке в отображение
0
16.10.2011, 20:18
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.10.2011, 20:18
Привет! Вот еще темы с ответами:

STL(map). Где инициализировать массив? - C++
Для начала: не получалось данную тему назвать более логично, сайт не пропускал :-| Добрый день. Имеется: map&lt;int, string&gt;...

Stl стандартная библиотека шаблонов c++ map - C++
Доброго всем времени суток :) Помогите пожалуйста дописать прогу. Нужно добавить сортировку по фамилии (что бы выводились в алфавитном...

Map STL - максимальный объем памяти - C++
Пишу модуль для программы - что-то вроде переводчика. Есть словарь синонимов (40+мб). Загружаю его в map, но после 740000+ ключа,...

Контейнер map и алгоритмы STL: несовместимость? - C++
Всем доброго времени суток! Столкнулся с проблемой: алгоритм remove_if не работает с контейнером map. Рассмотрим следующую функцию: ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
21
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru