C ++ 2D向量迭代
c++ 2D vector iteration
我有一个 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;
}
这行不通。我找不到任何关于如何从迭代器指向的向量中获取向量元素的语法。有什么建议吗?
你需要这个:
std::cout << (*it)[0] << (*it)[1] << std::endl;
但实际上你应该用你自己制作的 std::pair
或 struct
替换内部向量,因为如果你只有两个元素,它会更有效和更清晰。
我有一个 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;
}
这行不通。我找不到任何关于如何从迭代器指向的向量中获取向量元素的语法。有什么建议吗?
你需要这个:
std::cout << (*it)[0] << (*it)[1] << std::endl;
但实际上你应该用你自己制作的 std::pair
或 struct
替换内部向量,因为如果你只有两个元素,它会更有效和更清晰。