如何在 C++ 中访问向量中的数组元素?

How to access the elements of arrays in a vector in C++?

我试图在 C++ 中找到一种方法来拥有一个动态大小的数组(向量),我可以在其中存储字符串数组。此概念应用于存储具有不同标签的数据,例如:

{"Car", "0", "0", "400"},
{"Person", "0", "1", "320"},
{"Bicycle", "1", "0", "300"},
...

经过一番网上搜索,我走到了这一步:

struct Stringvec {std::string element[4];};
std::vector<Stringvec> list;
list.push_back({"Car", "0", "0", "400"});

但我不知道如何访问我存储在向量中的数组的各个元素,例如“车”。这行不通:

std::string label = list[0][0]; //Gives error:
error: no match for 'operator[]' (operand types are '__gnu_cxx::__alloc_traits<std::allocator<Stringvec> >::value_type {aka Stringvec}' and 'int')

有谁知道如何解决这个问题或更好的方法来将字符串数组存储在动态大小的数组中?

试试这个 std::string 标签=列表[0].元素[0];

您可以尝试在 std::vector

中使用 std::array
vector<array<string, 4>> list = {
    {"Car", "0", "0", "400"},
    {"Bicycle", "1", "2", "500"}
};

然后你就可以随心所欲地访问你想访问的元素了:

string str = list[0][1];