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