我知道多维向量,例如vector<vector<int>>
,但我想知道你是否可以在另一种类型的向量中有一个类型的向量。
一个例子是整数向量中的字符串向量,所以我会像这样访问它:
vectorName[0]["A"];
可以这样做吗?
感谢。
答案 0 :(得分:3)
此表达式更适合声明
std::vector<std::map<std::string, T>> vectorName;
在这种情况下,您可以编写例如
T value = vectorName[0]["A"];
其中T是某种类型。
答案 1 :(得分:1)
std::vector
是一种随机访问数据结构,它应该存储一个连续的数据数组,其中元素可以通过整数索引号访问。
您可以不以您描述的方式使用std::vector
,它似乎更像是字符串 - &gt; value_type映射,例如std::map<std::string, T>
。
您可以使用std::vector
std::map
来获取所需的行为。
std::vector<std::map<std::string, int>> vec{
{{"a1", 1}, {"a2", 2}},
{{"b1", 1}, {"b2", 2}}
};
std::cout << vec[0]["a2"] << std::endl; // 2