如何访问映射中从字符串到向量的向量中的索引
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
注意:这将返回"banana"
如果你想得到
"pear"
,你会使用:
my_map["banana"] [2] [1]
^^^^^^^ ^ ^
key third vector second element
(vec3) ("pear")
相关文章:
- 在for循环中使用auto vs decltype(vec.size())来处理字符串的向量
- 构造<int>具有 2 个字符串文字的向量
- 如何将元素添加到向量的字符串位置
- 将向量解析<string>为字符串
- C ++中的StringStream有助于使用向量从字符串中提取逗号分隔的整数,而不是空格分隔的整数,为什么?
- 在 C++11 中,如何查找并返回以给定字符串开头的字符串向量中的所有项?
- 如何使用向量字符串令牌构建表达树
- 将 argv 复制到新的全局向量字符串
- 如何读取控制台输入并将其存储到向量字符串中
- 向量字符串push_back在C 中不起作用
- C char数组和向量字符串
- 可以直接初始化向量<字符串 *> 而不使用 new 吗?
- 迭代向量字符串的字符(C++禁止指针和整数之间的比较)
- 比较两个向量字符串的相似性C++
- 我有麻烦将字符串放入向量字符串
- 如何从一个向量字符串得到一个字符串的联合集
- 函数返回向量/字符串,但不返回数组
- 向量向量字符串固定大小
- c++向量字符串排序不工作
- C++将字符串数组[]复制到向量<字符串>