int向量中的字符串向量?

时间:2014-08-02 16:24:31

标签: c++ vector

我知道多维向量,例如vector<vector<int>>,但我想知道你是否可以在另一种类型的向量中有一个类型的向量。

一个例子是整数向量中的字符串向量,所以我会像这样访问它:

vectorName[0]["A"];

可以这样做吗?

感谢。

2 个答案:

答案 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