Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 07.02.2013, 20:28   #71
_Bers
Старожил
 
Регистрация: 16.12.2011
Сообщений: 2,329
По умолчанию

ну если бы мне сильно приспичило - я б использовал связку из двух мапов
_Bers вне форума Ответить с цитированием
Старый 07.02.2013, 20:32   #72
_SOKOL_
Пользователь
 
Регистрация: 02.02.2013
Сообщений: 44
По умолчанию

из за отстуствия опыта, не могу рассказать проффесионально, но попробую
припустим у нас есть какой то там map <string, int> v; и он заполнен разными именами, псевдонимами или ещё что то, у каждого из них есть значение типа int
когда хотим к примеру вывести значение:
cout << v["_sokol_"]
то он пробегает по всем элементам пока не найдет ключ с таким же ключом что передаем в параметры оператора [], если нашел, то вывел значение, в нашем случае какой то номер этого элемента
я так представляю этот механизм, если ошибаюсь буду рад послушать вас, хуже от этого не станет
_SOKOL_ вне форума Ответить с цитированием
Старый 07.02.2013, 20:55   #73
rrrFer
Санитар
Старожил
 
Аватар для rrrFer
 
Регистрация: 04.10.2008
Сообщений: 2,618
По умолчанию

Цитата:
ну если бы мне сильно приспичило - я б использовал связку из двух мапов
да я так и делал, но что-то подутомила эту конструкция, я думал МБ я туплю и есть что-то красивей.

Цитата:
cout << v["_sokol_"]
то он пробегает по всем элементам пока не найдет ключ с таким же ключом что передаем в параметры оператора [], если нашел, то вывел значение, в нашем случае какой то номер этого элемента
я так представляю этот механизм, если ошибаюсь буду рад послушать вас, хуже от этого не станет
Да, так, но
-не по всем элементам, а в худшем случае по log(n) элементов
-это не значит, что "ключ что есть в map, просто позволяет обраться к элементу, сам ключ не будет выводиться никак", я же привел выше пример где выводится и ключ, который берется из словаря.

Может быть я неверно понял Ваше предыдущее сообщение, но я понял его так, что ключ мы никак не можем вывести, и ключ нужен только для доступа. Но элементы словаря упорядочены по ключу (можете попробовать переставить строки в моем предыдущем коде, выводиться они будут в одном и том же порядке), т.е. ключ "не просто" позволяет обратиться и это не "адрес элемента", а еще и значение, которое можно вывести.

Повторясь, но теперь мне кажется что я вас неверно понял )
rrrFer вне форума Ответить с цитированием
Старый 09.02.2013, 00:04   #74
_SOKOL_
Пользователь
 
Регистрация: 02.02.2013
Сообщений: 44
По умолчанию

из map можно вытащить имя ключа!

Код:
void main()
{
	
	srand(time(0));

	map<string, int> a;
	map<string, int> :: iterator b;

	a["test"] = 0;
	b = a.begin(); // для начала указываем на начало памяти "a"

	cout << b->first << endl; // с помощью итератора выводим имя ключа
        // на выводе конечно же test

}
_SOKOL_ вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
с чего начиНАТЬ С/С++!!!! dk118 Помощь студентам 0 05.12.2012 01:22
С чего начинать leonidsm Свободное общение 4 06.10.2012 19:37
Какой язык лучше всего выбрать после завершения изучения языка Паскаль. VektorAB Помощь студентам 4 09.07.2010 07:16
С чего начинать? Shadol Свободное общение 6 24.11.2009 11:46
С++ ЧЕГО НАЧИНАТЬ !!! geniy Общие вопросы C/C++ 12 03.09.2007 10:50