Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.67/18: Рейтинг темы: голосов - 18, средняя оценка - 4.67
 Аватар для FloraWinx
4 / 4 / 0
Регистрация: 05.10.2013
Сообщений: 123

Map, карта в карте

10.10.2014, 17:43. Показов 4145. Ответов 23
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
У меня возник такой вопрос, хочу сделать map в map, например
C++
1
 map < string , map <int ,int >> something
как мне получить доступ к второй карте именно
C++
1
map<string , map <int ,int>> :: iterator iter
в цикле
C++
1
iter->second
ведь это будет не корректно пытался сделать так тоже не получается (iter->second)->iter.
И чем отличается это
C++
1
map < pair<string ,int> , int> collector;
от
C++
1
map <  map<string , int> , int>
.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
10.10.2014, 17:43
Ответы с готовыми решениями:

Задача по теме карта (map)
#include &lt;iostream&gt; #include &lt;fstream&gt; #include &lt;vector&gt; #include &lt;string&gt; #include &lt;map&gt; #include &lt;sstream&gt; int main() { ...

Разработка контейнера типа Карта (Map)
Приветсвую всех форумчан! Имеется задача разработать решение реализующее динамическую структуру данных (контейнер) типа «Карта»(map,...

Разработка контейнера типа Карта (Map)
Приветсвую всех форумчан! Имеется задача разработать решение реализующее динамическую структуру данных (контейнер) типа «Карта»(map,...

23
 Аватар для FloraWinx
4 / 4 / 0
Регистрация: 05.10.2013
Сообщений: 123
11.10.2014, 09:36  [ТС]
Студворк — интернет-сервис помощи студентам
вот был переделал не много , но тоже не то, получается что когда я встречаю слово я пытаюсь лишь только сделать новую ветку (не записывать опять слово , а только записать номер строки) а это по понятным причинам не выйдет потому что ключ один для одной value.

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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
 map <string   , pair  <int , int >> collector; // our map
    map <string   , pair  <int , int >> ::iterator iteration;
 
 
    
    
  
 
 
    while (wordread(in,word,num))
                      {
    
                    iteration = collector.find(word);
                     if(iteration == collector.end()){ // checked everything is ok
                         collector.insert (make_pair ( word , make_pair (num,i)));}
 
                     if(iteration!= collector.end()){
 
                         if(iteration->second.first==num){ // ok too
                             iteration->second.second++; // increment when is needed
                         }
 
                         else
                         {
                        
                            collector.insert (make_pair ( word , make_pair (num,i)));
                         }
 
 
                     }
    
 
 
        
                     }
 
 for (const auto& item : collector) {
        cout << item.first ;
        cout<<":[";
        cout<<item.second.first<<","<<item.second.second<<"]"<<endl;
        }
0
3258 / 2060 / 351
Регистрация: 24.11.2012
Сообщений: 4,909
11.10.2014, 09:39
Ну есть же после чтения слово и номер строки. Так и вперед: ++collector[word][num];
1
 Аватар для FloraWinx
4 / 4 / 0
Регистрация: 05.10.2013
Сообщений: 123
11.10.2014, 10:08  [ТС]
ну да вы правы, не буду больше вас мучать, напишу потом что получилось.
0
Эксперт С++
 Аватар для Mr.X
3225 / 1752 / 436
Регистрация: 03.05.2010
Сообщений: 3,867
11.10.2014, 18:57
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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
/////////////////////////////////////////////////////////////////////////////////////////
//сделать map в map
//есть у меня текст, как подсчитать частоту тех слов которые встречаются в тексте больше 
//двух раз, при этом выводить слово его строку и частоту слова в строке.)
//
//Если слово встречается хотя бы больше одного раза в тексте тогда выводить.
//Если даже 1 слово в 3 строках одновременно , тоже выводить и отобразить номер строки 
//и частоту этого слова в строке. Ну вот например.
//Hello my name is
//He my is n
//tell me more
//---------------
//my - (строка 1 - 1/4) and ( строка 2 - 1/4)
/////////////////////////////////////////////////////////////////////////////////////////
#include <algorithm>
#include <iostream>
#include <iterator>
#include <map>
#include <sstream>
#include <string>
/////////////////////////////////////////////////////////////////////////////////////////
typedef std::string                                                 T_str;
typedef T_str                                                       T_word;
typedef std::map    < T_word,   int                             >   T_count_total_of_word;
typedef std::map    < int,      int                             >   T_count_in_str_with_ind;
typedef std::map    < T_word,   T_count_in_str_with_ind         >   T_count_in_str_with_ind_of_word;
typedef std::map    < int,      int                             >   T_words_total_in_str_with_ind;
/////////////////////////////////////////////////////////////////////////////////////////
int     main()
{
    std::locale::global(std::locale(""));
 
    const   T_str   text    =   "1\n"
                                "2 2\n"
                                "2 3 3 3\n"
                                "2 3 4 4 4 4\n"
                                "2 3 4 5 5 5 5 5\n";
 
    std::cout   <<  text
                <<  std::endl;
 
    std::istringstream  ssin( text );
 
    T_count_total_of_word               count_total_of_word;
    T_count_in_str_with_ind_of_word     count_in_str_with_ind_of_word;
    T_words_total_in_str_with_ind       words_total_in_str_with_ind;
 
    T_str   line;
    int     line_counter    =   0;
 
    while   (
                getline( ssin,  line )
            )
    {
        std::istringstream  ssin_line( line );
 
        std::for_each
            (
                std::istream_iterator< T_word >     ( ssin_line ),
                std::istream_iterator< T_word >     (),
 
                [&]                                 ( T_word    const   &   word )
                {
                    ++count_total_of_word[ word ];
                    ++count_in_str_with_ind_of_word[ word ][ line_counter ];
                    ++words_total_in_str_with_ind[ line_counter ];
                }
            );
 
        ++line_counter;
    }//while
 
    std::for_each
        (
            count_total_of_word.begin   (),
            count_total_of_word.end     (),
 
            [&] (
                    T_count_total_of_word::value_type    const   &   word_and_count_total
                )
            {
                if  (
                            word_and_count_total.second
                        >   1
                    )
                {
                    auto    cur_word    =   word_and_count_total.first;
 
                    std::cout   <<  cur_word
                                <<  " - ";
 
                    std::for_each
                        (
                            count_in_str_with_ind_of_word[ cur_word ].begin    (),
                            count_in_str_with_ind_of_word[ cur_word ].end      (),
 
                            [&] (
                                    T_count_in_str_with_ind_of_word::mapped_type::value_type  const   &   str_ind_and_count
                                )
                            {
                                int     cur_str_ind     =   str_ind_and_count.first;
 
                                std::cout   <<  "(строка "
                                            <<  cur_str_ind  +   1
                                            <<  " - "
                                            <<  str_ind_and_count.second
                                            <<  "/"
                                            <<  words_total_in_str_with_ind[ cur_str_ind ]
                                            <<  ") ";
                            }//lambda
                        );//for_each
 
                    std::cout   <<  std::endl;
                }//if
            }//lambda
        );//for_each
    system("pause");
}
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
11.10.2014, 18:57

Map Overlay линия на карте
Здравствуйте. Не могу понять как отразить линию на карте, соединяющую две точки(имеются координаты точек) Что нужно писать в полях...

Как измерить пройденное расстояние по карте Google Map?
Приветствую! Я знаю как найти путь по карте Гугл на смартфоне. Как можно с её помощью увидеть, какое расстояние я прошёл?

C++ SFML не загружается map.tmx карта
Я создаю игру использую c++ sfml , облазил уже весь интернет в поисках ответа на вопрос . Дело в том что, чтобы карта нормально работала...

Карта города на PHP, поиск по карте при помощи скрипта
Подскажите пожалуйста как сделать поиск по данной карте.Например я ввожу:пер, Учительский 5;и мне сразу показывает(обводит в какой-нибудь...

Из 3 колод по 36 карт вынимают по одной карте.Какова вероятность,что хотя бы одна карта окажется красной масти
Напишите, пожалуйста, как решить данный тип задачи.


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

Или воспользуйтесь поиском по форуму:
24
Ответ Создать тему
Новые блоги и статьи
Nekobox - outbounds[0].transport: unknown transport type: raw
damix 01.10.2026
Фикс ошибки Правым кликом по серверу -> отладочная информация -> edit Заменить "net": "raw", на "net": "tcp", Нажать кнопку reload.
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js. В помощники взял Яндекс-Алису. Было создано три зала на разные интересы. исторические и ретро сериал Хичкок. . .
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#. Название изменил на ColorStep. Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами: - ВидТО (СправочникСсылка. ВидыТО); - ВидГСМ. . .
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU. Опрашиваются регистры. . .
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка: Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru