如何访问从字符串到向量的映射中向量中的索引
How to access an index in a vector in a map from strings to vectors
如果我有以下代码,它将 3 个向量作为值存储在 unordered_map 中,并通过它们的第一个索引中的字符串作为键映射到它们:
unordered_map<string, vector <vector<string>>> my_map;
vector<string> vec1 = {"banana", "apple"};
vector<string> vec2 = {"banana", "banana"};
vector<string> vec3 = {"banana", "pear"};
my_map["banana"].push_back(vec1);
my_map["banana"].push_back(vec2);
my_map["banana"].push_back(vec3);
cout << my_map["banana"][0] << my_map["banana"][1] << my_map["banana"][2];
如何访问 unordered_map 向量的特定索引?我试图在最后一行这样做,但它不起作用。我也尝试过使用 .at(0) 等代替双括号,但这也没有用。
my_map["banana"][0]
是一个std::vector<std::string>
,所以不能直接输出。您可以重载 <<
运算符,或者只指定另一个索引。
您有一个 std::unordered_map<std::string, std::vector<std::vector<std::string>>>
,其中每个键都有一个向量向量。
所以my_map["banana"].push_back(vec1)
将vec1
推到主向量。如果要访问 vec1
中的值,则必须指定 2 个索引,因为:
my_map["banana"][0] [0]
^^^^^^ ^ ^
key vector 0 element 0 in the vector
(in main vector) at position 0 in the main vector
注意:这将 return "banana"
如果你想得到 "pear"
,你可以使用:
my_map["banana"] [2] [1]
^^^^^^^ ^ ^
key third vector second element
(vec3) ("pear")
如果我有以下代码,它将 3 个向量作为值存储在 unordered_map 中,并通过它们的第一个索引中的字符串作为键映射到它们:
unordered_map<string, vector <vector<string>>> my_map;
vector<string> vec1 = {"banana", "apple"};
vector<string> vec2 = {"banana", "banana"};
vector<string> vec3 = {"banana", "pear"};
my_map["banana"].push_back(vec1);
my_map["banana"].push_back(vec2);
my_map["banana"].push_back(vec3);
cout << my_map["banana"][0] << my_map["banana"][1] << my_map["banana"][2];
如何访问 unordered_map 向量的特定索引?我试图在最后一行这样做,但它不起作用。我也尝试过使用 .at(0) 等代替双括号,但这也没有用。
my_map["banana"][0]
是一个std::vector<std::string>
,所以不能直接输出。您可以重载 <<
运算符,或者只指定另一个索引。
您有一个
std::unordered_map<std::string, std::vector<std::vector<std::string>>>
,其中每个键都有一个向量向量。
所以my_map["banana"].push_back(vec1)
将vec1
推到主向量。如果要访问 vec1
中的值,则必须指定 2 个索引,因为:
my_map["banana"][0] [0]
^^^^^^ ^ ^
key vector 0 element 0 in the vector
(in main vector) at position 0 in the main vector
注意:这将 return "banana"
如果你想得到
"pear"
,你可以使用:
my_map["banana"] [2] [1]
^^^^^^^ ^ ^
key third vector second element
(vec3) ("pear")