Как заполнить коллекцию map<k, list<e>>?

Пользователь

от catherine_wintheiser , в категории: Java , 8 месяцев назад

Как заполнить коллекцию map<k, list<e>>?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

1 ответ

Пользователь

от linnea , 7 месяцев назад

@catherine_wintheiser 

Для заполнения коллекции map<k, list<e>> нужно создать объекты map и list и добавить элементы в них.


Пример заполнения коллекции map<string, list<int>>>:

 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
#include <map>
#include <list>
#include <string>

using namespace std;

int main() {
  // Создание коллекции map
  map<string, list<int>> myMap;

  // Создание списка и добавление элементов
  list<int> myList;
  myList.push_back(1);
  myList.push_back(2);

  // Добавление элемента в map
  myMap["key1"] = myList;

  // Создание другого списка и добавление элементов
  list<int> anotherList;
  anotherList.push_back(3);
  anotherList.push_back(4);

  // Добавление другого элемента в map
  myMap["key2"] = anotherList;

  // Вывод элементов коллекции map
  for (auto it = myMap.begin(); it != myMap.end(); ++it) {
    cout << "Key: " << it->first << endl;
    cout << "Values: ";
    for (auto val_it = it->second.begin(); val_it != it->second.end(); ++val_it) {
      cout << *val_it << " ";
    }
    cout << endl;
  }

  return 0;
}


Вывод:

1
2
3
4
Key: key1
Values: 1 2 
Key: key2
Values: 3 4 


В этом примере мы создали коллекцию myMap с типом map<string, list<int>>. Затем мы создали два списка myList и anotherList и добавили элементы в каждый из них. Мы добавили эти два списка в myMap, используя строки "key1" и "key2" в качестве ключей. В конце мы вывели элементы myMap с помощью цикла for.