use*_*356 2 c++ unordered-map vector
所以我可以说我声明了一个像这样的unordered_map:
unordered_map<string, vector<string>> my_map;
Run Code Online (Sandbox Code Playgroud)
我有一个我想要存储在其中的值列表,如下所示:
vector<string> vec1 = {"banana", "apple"};
vector<string> vec2 = {"banana", "banana"};
vector<string> vec3 = {"banana", "watermelon"};
Run Code Online (Sandbox Code Playgroud)
如果我通过并将每个向量初始化到地图,使用其第0个索引中的字符串作为键,如下所示:
my_map[vec1[0]] = vec1;
my_map[vec2[0]] = vec2;
my_map[vec3[0]] = vec3;
Run Code Online (Sandbox Code Playgroud)
unordered_map是否会存储所有三个向量,尽管它们具有相同的访问密钥?如果我想访问每个向量,有没有一种方法可以按照上面列表中出现的顺序执行此操作?
例如,如果我这样做:
vector<string> output1;
vector<string> output2;
vector<string> output3;
output1 = my_map["banana"];
output2 = my_map["banana"];
output3 = my_map["banana"];
Run Code Online (Sandbox Code Playgroud)
哪些向量将分配给output1,output2和output3?我很确定它会为所有人提供相同的矢量但是unordered_map如何决定哪一个?我怎样才能使vec1被分配给output1,vec2到output2等?
std::unordered_map
每个键只存储一个值 - 您分配给它的最后一个值,在您的情况下它是vec3
.如果要为每个可以使用的键存储多个值,std::multimap
或者std::unordered_multimap
.
归档时间: |
|
查看次数: |
1557 次 |
最近记录: |