我有std::vector< std::vector<int> > vec
向量。我需要迭代外部向量并使用内部向量中的值(只存储2个值),如* it [0]和* it [1]。
for (std::vector< std::vector<int> >::iterator it = vec.begin(); it != vec.end(); ++it) {
std::cout << *it[0] << *it[1] << std::endl;
}
这不起作用。我找不到任何关于如何从迭代器指向的向量中获取向量元素的语法。有什么建议吗?
答案 0 :(得分:3)
你需要这个:
std::cout << (*it)[0] << (*it)[1] << std::endl;
但实际上你应该用你自己制作的std::pair
或struct
替换内部向量,因为如果你只有两个元素会更有效和更清晰。