STL - добавление значений к вектору, хранящемуся в карте STL

0

У меня есть карта STL:

std::map<std::string, std::vector<int> > my_map;

У меня две переменные:

string name;
int age;

Значение этих переменных изменяется, но, по сути, я стараюсь:

  1. Если, имя ключа не существует, создайте имя ключа и добавьте возраст в вектор.
  2. Else, ключевое имя действительно добавляет возраст к вектору.

В конце концов у меня будет карта, содержащая имена людей и возрасты людей с именами, хранящимися в целочисленном векторе.

Я не могу для жизни меня разработать синтаксис, чтобы сделать это. Пожалуйста помоги :(.

Андрей

Теги:
c++11

2 ответа

2
Лучший ответ

После вашего обновления это просто

my_map[ "Daniel" ].push_back( 40 );
my_map[ name ].push_back( age );

работает в обоих случаях, существует ли ключ или нет.

  • 0
    TY для ответа. Мне нужно разработать статистику по возрастам на более позднем этапе, например, средний возраст. Так нужно хранить все возрасты.
  • 0
    @ Андрей обновил мой ответ.
Показать ещё 1 комментарий
1

Учитывая приведенную ниже карту:

 std::map<std::string,int> mymap;

 // Whether the key exists or not it will put something on the key.
 // So, if it does not exist it will create it, and if it exists it will
 // just replace it.
 mymap["somestring"] = 50;
 mymap["b_string"] = 100;

Я предполагаю, что вам нужно, если я ошибаюсь, дайте мне знать. Кроме того, помните, чтобы посоветовать это: http://en.cppreference.com

Вы всегда можете найти основные понятия и множество примеров для функций STL C++.

  • 0
    Спасибо за ваш вклад. Это помогло бы, если бы я правильно разместил свой вопрос в первый раз. :П

Ещё вопросы

Сообщество Overcoder
Наверх
Меню