C++ 如何迭代字符串向量的向量?(c+;+;)

C++ 如何迭代字符串向量的向量?(c+;+;),c++,string,multidimensional-array,vector,iterator,C++,String,Multidimensional Array,Vector,Iterator,我需要循环使用字符串向量的向量,就像我在这个例子中使用整数一样: intmain() { 载体材料; //填充内部向量,然后将其插入外部向量 对于(int i=0;i

我需要循环使用字符串向量的向量,就像我在这个例子中使用整数一样:

intmain()
{
载体材料;
//填充内部向量,然后将其插入外部向量
对于(int i=0;i<999;i++)
{
维克托坦;
对于(int j=0;j<9;j++)
{
温度推回(i);
++一,;
}
材料。推回(温度);
}
//显示所有元素。。。
对于(int i=0;i你可以用同样的逻辑。
除非你想一次打印一个字母

#include <string>
#include <iostream>
#include <vector>

using std::vector;

int main()
{
    vector<vector<std::string> > vec;

    std::string tmp;

    for(int i = 0; i < 2; ++i)
    {
        vector<std::string> v;
        for(int j = 0; j < 9; ++j)
        {
            std::cin >> tmp;
            v.push_back(tmp);
        }
        vec.push_back(v);
    }

    for(int i = 0; i < vec.size(); ++i)
    {
        for(int j = 0; j < vec[i].size(); ++j)
        {
            std::cout << vec[i][j] << "\t";
        }
        std::cout << std::endl;
    }
    return 0;
}
#包括
#包括
#包括
使用std::vector;
int main()
{
向量向量机;
std::字符串tmp;
对于(int i=0;i<2;++i)
{
向量v;
对于(int j=0;j<9;++j)
{
标准:cin>>tmp;
v、 推回(tmp);
}
向量推回(v);
}
对于(int i=0;istd::cout您可以使用相同的逻辑。
除非你想一次打印一个字母

#include <string>
#include <iostream>
#include <vector>

using std::vector;

int main()
{
    vector<vector<std::string> > vec;

    std::string tmp;

    for(int i = 0; i < 2; ++i)
    {
        vector<std::string> v;
        for(int j = 0; j < 9; ++j)
        {
            std::cin >> tmp;
            v.push_back(tmp);
        }
        vec.push_back(v);
    }

    for(int i = 0; i < vec.size(); ++i)
    {
        for(int j = 0; j < vec[i].size(); ++j)
        {
            std::cout << vec[i][j] << "\t";
        }
        std::cout << std::endl;
    }
    return 0;
}
#包括
#包括
#包括
使用std::vector;
int main()
{
向量向量机;
std::字符串tmp;
对于(int i=0;i<2;++i)
{
向量v;
对于(int j=0;j<9;++j)
{
标准:cin>>tmp;
v、 推回(tmp);
}
向量推回(v);
}
对于(int i=0;istd::cout这里有一个例子,有三个
vector
s的
string
s的大小
5
10
15
。这个例子使用
C++11
来打印
vector

代码:

#include <iostream>
#include <vector>
#include <string>
#include <algorithm>

int main()
{
    using SList = std::vector< std::string >;
    using VList = std::vector< SList >;

    VList vlist;

    for ( int i = 5; i <= 15; i += 5 )
    {
        SList slist { i };
        std::fill( slist.begin(), slist.end(), "Test" );
        vlist.push_back( slist );
    }

    for ( const auto& v : vlist )
    {
        std::cout << "{ ";
        for ( const auto& s : v )
        {
            std::cout << s << ' ';
        }
        std::cout << "}\n";
    }

    return 0;
}
{ Test Test Test Test Test }
{ Test Test Test Test Test Test Test Test Test Test }
{ Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test }

以下是Ideone上的实时示例:

这里有一个示例,其中有三个
向量
字符串
大小
5
10
,和
15
。此示例使用
C++11
打印
向量

代码:

#include <iostream>
#include <vector>
#include <string>
#include <algorithm>

int main()
{
    using SList = std::vector< std::string >;
    using VList = std::vector< SList >;

    VList vlist;

    for ( int i = 5; i <= 15; i += 5 )
    {
        SList slist { i };
        std::fill( slist.begin(), slist.end(), "Test" );
        vlist.push_back( slist );
    }

    for ( const auto& v : vlist )
    {
        std::cout << "{ ";
        for ( const auto& s : v )
        {
            std::cout << s << ' ';
        }
        std::cout << "}\n";
    }

    return 0;
}
{ Test Test Test Test Test }
{ Test Test Test Test Test Test Test Test Test Test }
{ Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test }

这是IDEN: I/P>的一个生动例子:你相信你在二维代码中迭代代码< int > /Calp>s会用一个字符串向量来工作吗?它至少应该被编译,也就是说,只有变量名被改变了。虽然它不是一个特别有效的迭代方式,但是在C++中,它将是一个非常有效的方法。工作。您的示例循环对内部元素类型所做的唯一一件事就是打印它们——

string
的使用在这方面并不比
int
的使用更复杂。不过请注意,您的第二个代码块只是字符串向量,而不是字符串向量。这里我在一维字符串v上迭代ector…您不是在向量
first\u arr
上迭代。您是在
myfile
的行上迭代,并将这些行添加到向量
first\u arr
。顺便说一句,将问题分解为更小的部分。如果您在处理事物向量时遇到问题,请编写一个函数我想我离它不远了,但仍然缺少一些东西。我花了几个晚上讨论这个问题,最后决定寻求帮助;(从逻辑上讲,String!=int,它
s更复杂;您不能遍历String,因为它是int)你会相信你在迭代C++代码< int >代码> s中的代码是否会工作,主要是用字符串向量来改变?它至少应该编译,只不过变量名被改变了。虽然它不是一种特别有效的迭代方式,但是C++中,它是有效的。在这方面,
string
的用法并不比
int
的用法复杂。尽管请注意,您的第二个代码块只是字符串向量,而不是字符串向量。在这里,我在一维字符串向量上迭代……您不是在ve上迭代ctor
first\u arr
。您正在对
myfile
的行进行迭代,并将这些行添加到向量
first\u arr
。顺便说一句,将问题分解为更小的部分。如果您在处理事物向量时遇到问题,请编写一个函数,对事物向量的每个元素进行处理,然后编写另一个函数,调用一个向量的函数。我想我离它不远了,但仍然缺少一些东西。我花了几个晚上讨论这个问题,最后决定寻求帮助;(逻辑上,String!=int,它更复杂;你不能运行String,因为它是int)