Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.78/9: Рейтинг темы: голосов - 9, средняя оценка - 4.78
191 / 52 / 19
Регистрация: 18.02.2013
Сообщений: 490
Записей в блоге: 9
1

Map : как по номеру элемента получить сам элемент контейнера?

28.05.2017, 19:44. Просмотров 1857. Ответов 3
Метки нет (Все метки)


Додумался только до такого:
C++
1
2
3
4
5
6
7
int n = 2;
std::map< String, String > MASS;
std::map<String, String>::iterator it = MASS.begin();
for(int i = 0; i < n; i++)
{
   it++;
}
Собственно вопрос : есть ли другой способ(более элегантный) получения элемента ассоциативного массива по его номеру?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
28.05.2017, 19:44
Ответы с готовыми решениями:

Из каждого элемента контейнера map вычесть среднее арифметическое контейнера
Контейнер map, тип элементов Int 3.Из каждого элемента вычесть среднее арифметическое контейнера

Как получить копию pair из map контейнера?
Всем привет. Имеется внутри класса контейнер map, у класса есть метод который возвращает при каждом...

Вывести элемент контейнера map по заданному ключу
map&lt;string,int&gt; words; string word; while (cin&gt;&gt; word , word !=&quot;#&quot;){ words++; } есть...

Не получается вывести и удалить последний элемент контейнера map
Не получается вывести и удалить последний элемент контейнера map. Для первого (begin) всё...

3
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
30866 / 20188 / 7874
Регистрация: 22.10.2011
Сообщений: 35,049
Записей в блоге: 6
28.05.2017, 19:54 2
Не нужно этого делать. Полностью задачу озвучь, посмотрим, как ее решать.
0
191 / 52 / 19
Регистрация: 18.02.2013
Сообщений: 490
Записей в блоге: 9
28.05.2017, 20:15  [ТС] 3
В общем так: есть класс, который содержит ассоциативный массив и много чего другого.
Есть метод класса, который принимает число - номер элемента, значение ключа и ключ которого нужно вернуть по ссылке.
Вот так.
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
30866 / 20188 / 7874
Регистрация: 22.10.2011
Сообщений: 35,049
Записей в блоге: 6
28.05.2017, 20:21 4
Конечно, можно сделать и вот так:
C++
1
2
    std::map<String, String>::iterator it = MASS.begin();
    std::advance(it, n - 1);
, но что-то мне подобная затея не очень нравится. Да, кстати, если все-таки решишь использовать std::advance - то проверяй, не вылетишь ли за пределы мапы.
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
28.05.2017, 20:21

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь или здесь.

Как получить элемент по ключу у map?
Никак не могу понять что я делаю не так... У меня есть указатель std::map&lt;int,std::string&gt;* g;...

как получить элемент QGraphicsItem по порядковому номеру из QGraphicsScene
Есть проблема. 1) Нужно получить элемент QGraphicsItem по порядковому номеру из QGraphicsScene....

Используя алгоритм сделать "реверс" элемента контейнера map
map&lt;string, int&gt; msi; map = 1; map = 2; map&lt;int, string&gt; mis; Можно ли используя...

Как получить индекс элемента или сам обьект в DataGrid WPF(MVVM)?
Помогите решить вопрос, как получить индекс элемента или сам обьект в DataGrid WPF(MVVM)? DataGrid...


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

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

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