C++ 使用cpp中的迭代器在二维向量矩阵的行上迭代
这有迭代器吗C++ 使用cpp中的迭代器在二维向量矩阵的行上迭代,c++,vector,iterator,C++,Vector,Iterator,这有迭代器吗 for (vector<string>:: const_iterator it = vector.begin(); it != vector.end(); ++it) { cout << *it << endl; } for(vector::const_迭代器it=vector.begin();it!=vector.end();++it) { cout你的“2D矩阵”只是一个向量向量。当你对它进行迭代时,每个迭代器都指向一个向量。这并不
for (vector<string>:: const_iterator it = vector.begin(); it != vector.end(); ++it)
{
cout << *it << endl;
}
for(vector::const_迭代器it=vector.begin();it!=vector.end();++it)
{
cout你的“2D矩阵”只是一个向量向量。当你对它进行迭代时,每个迭代器都指向一个向量。这并不奇怪。没有理由期望迭代器对向量的一个元素有不同的行为
在您的情况下,您必须提供代码来流式传输字符串向量。这部分不起作用
cout << *it << endl;
然后
for(vector::const_迭代器it=vector.begin();it!=vector.end();++it)
{
streamStuff(std::cout,*it);
如果你没有2D矩阵,你有一个向量向量。向量向量向量是一个向量。它包含更多的向量。如果你只是想把一串字符串放进一个向量,一个又一个向量呢?@如果你没有2D矩阵,你有一个向量向量向量向量。向量向量向量向量是一个向量。如果你只想把一串字符串放进向量,一个向量接一个向量,那该怎么办?就这样做吧?最好弄清楚你在问什么。
cout << *it << endl;
void streamStuff(std::ostream& o, const std::vector<std::string>>& v)
{
for (const auto& s : v)
o << s << " ";
}
for (vector<vector<string>>::const_iterator it = vector.begin(); it != vector.end(); ++it)
{
streamStuff(std::cout, *it);
cout << endl;
}