1 / 1 / 0
Регистрация: 20.04.2015
Сообщений: 73
|
|||||||||||
1 | |||||||||||
Map и string22.04.2015, 15:14. Показов 5908. Ответов 26
Метки нет (Все метки)
Добрый день, уважаемые программисты!
Прошу вас, пояснить пожалуйста следующий код :
Скажите пожалуйста, что значит вот это :
Спасибо!
0
|
22.04.2015, 15:14 | |
Ответы с готовыми решениями:
26
Как вставить элемент и вывести элементы на экран в map<string, map<string,int>> ? Запись значения в map<string, map<string,string>> Доступ к паре в map<string, vector<pair<string, string>>>Temp Работа с map<string, map<string, string>> |
13 / 13 / 7
Регистрация: 21.04.2013
Сообщений: 245
|
|
22.04.2015, 15:17 | 2 |
NewBi, это значит постинкремент содержимого words по ключу word, то есть увеличение его на 1.
1
|
2443 / 1841 / 406
Регистрация: 15.12.2013
Сообщений: 8,238
|
|
22.04.2015, 15:20 | 3 |
words <- имя переменной
[word] <- обращение к элементу по ключу ++ <- операция инкремента. Сложите все вместе и получите,что значение соответствующее указанному ключу увеличивается на 1.
1
|
1 / 1 / 0
Регистрация: 20.04.2015
Сообщений: 73
|
|
22.04.2015, 15:31 [ТС] | 4 |
Т.е. мы переменной words присваиваем переменную word по ключу и инкремируем перенную words ??
А второе значение (int), будет увеличиваться автоматически? По мере прибавления ключей ?
0
|
13 / 13 / 7
Регистрация: 21.04.2013
Сообщений: 245
|
||||||
22.04.2015, 15:37 | 6 | |||||
Words:
key : value ---------------------- "cats" : 1 "dogs" : 5 "rabbits" : 9
проверьте это, выведя в консоль с помощью std::cout << words["rabbits"] Не по теме: ( или words.at("rabbits") (c++11))
1
|
1 / 1 / 0
Регистрация: 20.04.2015
Сообщений: 73
|
|
22.04.2015, 15:56 [ТС] | 7 |
Если честно, ещё больше запутался...
0
|
22.04.2015, 16:03 | 8 |
NewBi, если ты не изучал мапы, то естественно запутался. Не прыгай выше головы.
Изучай сначала базовые структуры данных и алгоритмы. например, массивы циклы, условия и уже с ними сам вручную делай счётчик слов в файле.
1
|
2443 / 1841 / 406
Регистрация: 15.12.2013
Сообщений: 8,238
|
|
22.04.2015, 16:06 | 9 |
1
|
1 / 1 / 0
Регистрация: 20.04.2015
Сообщений: 73
|
|
22.04.2015, 18:10 [ТС] | 10 |
Просто не могу понять, мы как бы обращаемся по индексу к переменной words??
Т.е. мы к переменной words (map) присваиваем переменную word (string),а переменную word инициализируем каким-то значением, к примеру "hello", потом мы по индексу присваиваем этот word(string) мапу words, и потом инкремируем переменную words (map), таким образом получается что в переменной(массиве) words (map) первое значение будет ("hello",1) ... и после инкремента, уже обращаемся к второму значению?? Я прав???
0
|
7792 / 6559 / 2984
Регистрация: 14.04.2014
Сообщений: 28,671
|
|
22.04.2015, 18:51 | 11 |
map работает как массив, только в качестве индексов используются слова. Если три раза будет слово hello, то получится ("hello", 3).
1
|
2443 / 1841 / 406
Регистрация: 15.12.2013
Сообщений: 8,238
|
||||||
22.04.2015, 18:55 | 12 | |||||
Сообщение было отмечено NewBi как решение
Решение
Можете считать что map это массив,только индекс не числовой а такой,какой указан первым параметром шаблона.
не совсем.
1
|
22.04.2015, 19:32 | 13 |
S_el, моё мнение прежнее, программа должна соответствовать твоим знаниям. Если ты напишешь программу без использования мап, это будет по-честному. Тебе задали задачку, не для того, чтобы брать готовое решение на форуме со структурами данных, которых ты не знаешь.
Наоборот, я уверен, вы в школе недавно прошли темы "массивы" и "строки" и по этим темам вам задали домашку. Вот и решай её с массивами и строками, точнее спрашивай тут её, на основе известного тебе материала. Я уверен, учительница хотела, чтобы ты именно продемонстрировал алгоритм подсчёта строк, а не то, как создатели СТЛ его знают.
1
|
2443 / 1841 / 406
Регистрация: 15.12.2013
Сообщений: 8,238
|
|
22.04.2015, 19:37 | 14 |
Не знаю что хотела учительница,а то,что ТС пытается освоить новый материал - хорошо.Но я с вами соглашусь - знания надо наращивать постепенно.
Не по теме: Kuzia domovenok, вы меня перепутали с ТС :)
1
|
1 / 1 / 0
Регистрация: 20.04.2015
Сообщений: 73
|
|
22.04.2015, 19:39 [ТС] | 15 |
Т.е. если представить переменную words, как простой массив int, то к примеру, words[1]=5, будет означать что мы элементу массива words, под индексом 1, присваиваем значение 5.
Тогда в map'e у нас вместо числовых индексов идут индексы которые мы указали (string), и мы, вот этим, присваиваем индексу ["one"], значение 1? Извиняюсь если замучил уже
0
|
2443 / 1841 / 406
Регистрация: 15.12.2013
Сообщений: 8,238
|
||||||
22.04.2015, 19:44 | 16 | |||||
Сообщение было отмечено NewBi как решение
Решение
Не индексу,а элементу.Индекс однозначно определяет элемент контейнера.
Да.Но ключ может быть и другим типом.Например:
1
|
1 / 1 / 0
Регистрация: 20.04.2015
Сообщений: 73
|
|
22.04.2015, 20:01 [ТС] | 17 |
S_el, кажется я начинаю понимать по-тихоньку, а тогда операция инкремент означает, что, элементу массива words["one"] мы присвоили значение 1, а теперь уже ссылаемся на следующий элемент ??Как в обычных массивах ?
И как мы , вот этому можем присвоить значение, если индекс (-5)? Kuzia domovenok, Прошу прощения если Вас сильно нагрузил, я просто для себя хотел понять эту тему. В любом случае, спасибо за Ваши советы и Вашу помощь!
0
|
2443 / 1841 / 406
Регистрация: 15.12.2013
Сообщений: 8,238
|
|
22.04.2015, 20:07 | 18 |
операция инкремент означает тоже что и всегда.Вы обратились к элементу и увеличили его значение на 1.Чаще выводите на консоль различные сообщения(или смотрите в отладчике) и тогда вам будет намного проще разобраться.
А что вас собственно в этой записи смущает? Чем число -5 хуже чем число 2?
1
|
1373 / 596 / 199
Регистрация: 02.08.2011
Сообщений: 2,882
|
|
22.04.2015, 20:21 | 19 |
Сейчас не разобравшись с массивами, но разобравшись с map и поняв, что -5 ничем не хуже чем 2, потом может аукнутся в применении отрицательных индексов в массивах. А чё, - ничем не хуже чем +.
1
|
2443 / 1841 / 406
Регистрация: 15.12.2013
Сообщений: 8,238
|
|
22.04.2015, 20:27 | 20 |
1
|
22.04.2015, 20:27 | |
22.04.2015, 20:27 | |
Помогаю со студенческими работами здесь
20
Как перебрать все элементы в map<string, vector<string>> Есть ли аналог Map <String,String> чтобы передавать его как указатель на данные? Вывод содержимого map<string, set<string>> Сохранение/чтение map<string,string*> в файл Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |