如何解决如何在C ++中访问向量中数组的元素?
我试图在C ++中找到一种方法来拥有一个动态大小数组(向量),在其中可以存储字符串数组。此概念应用于存储带有不同标签的数据,例如:
{"Car","0","400"},{"Person","1","320"},{"Bicycle","300"},...
经过一番互联网搜索,我走了这么远:
struct Stringvec {std::string element[4];};
std::vector<Stringvec> list;
list.push_back({"Car","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::array
中使用std::vector
vector<array<string,4>> list = {
{"Car","0","400"},{"Bicycle","1","2","500"}
};
然后,您可以根据需要访问要访问的元素:
string str = list[0][1];
,
尝试一下 std :: string label = list [0] .element [0];
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。