c ++ 2D向量迭代

时间:2015-03-05 14:08:15

标签: c++ vector

我有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;
}

这不起作用。我找不到任何关于如何从迭代器指向的向量中获取向量元素的语法。有什么建议吗?

1 个答案:

答案 0 :(得分:3)

你需要这个:

std::cout << (*it)[0] << (*it)[1] << std::endl;

但实际上你应该用你自己制作的std::pairstruct替换内部向量,因为如果你只有两个元素会更有效和更清晰。