2013-10-12 32 views
0

我有一个STL图中的,矢量:STL - 添加值存储在STL地图

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

我有两个变量:

string name; 
int age; 

这些变量的变化值,但基本上就是我我想要做的是:

  1. 如果,键名不存在创建键名称并添加到矢量的年龄。
  2. 否则,键名确实存在添加年龄向量。

最终,我将有一张地图,其中包含人名以及存储在整数向量中的这些名字的人的年龄。

我不能为我的生活制定出这样做的语法。请帮助:(

安德鲁

+0

添加年龄到什么向量?和“创造关键名称”具有什么价值? – Beta

+0

你从哪里得到那张地图?如果你想将'std :: string'类型的名字映射到类型为'int'的年龄,试试'std :: map '。 –

+0

第一篇文章。有一个格式错误。现在看看丹尼尔已经纠正。 :) – Andrew

回答

2

您的更新后,它只是

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

适用于这两种情况下,关键是否存在与否

+0

TY答复。我需要在稍后的时间,例如平均年龄,计算出年龄的统计数据。所以需要存储所有年龄。 – Andrew

+0

@Andrew更新了我的答案。 –

+0

谢谢你。确切地工作。 :) – Andrew

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

您总是可以找到C++的STL函数的基本概念和大量示例。

+0

感谢您的意见。如果我第一次正确地发布我的问题,这将会有所帮助。 :P – Andrew