c++ - 二维 vector 打印

标签 c++ loops for-loop vector c++03

我有一个二维字符串 vector 需要打印出来。整个程序应该从 txt 文件中读取一行,将其中的每个单词存储为不同的元素,然后将“单词 vector ”推送到包含例如 100 行的 vector 中。我一切顺利,但是当我必须打印 vector 时,问题就出来了。每行可以有不同数量的单词,例如:

I like cake

a lot.

所以我不能使用:

for (int i = 0; i < 2; i++)
{
    for (int j = 0; j < 3; j++)
    {
        cout << vec[i][j];
    }
}

因为第二行不包含3个元素,程序关闭。
知道怎么做吗?注意:我的讲师不接受 C++11,因此将不胜感激基于 C++98 的解决方案。这是我的功能:

void readline(vector<vector<string> >& lines, int size)
{
    vector<string> row;
    string line, word;
    fstream file;
    istringstream iss;
    int i;

    file.open("ticvol1.txt", ios::in);
    for (i = 0; i < size; i++)
    {
        getline(file, line);
        iss.str(line);
        while (iss >> word) row.push_back(word);
        lines.push_back(row);
    }
}

最佳答案

您可以轻松地按大小循环遍历 vector ,只需使用 size() 成员函数:

for (int i = 0; i < vec.size(); i++)
{
    for (int j = 0; j < vec[i].size(); j++)
    {
        cout << vec[i][j];
    }
}

关于c++ - 二维 vector 打印,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26937550/

相关文章:

python - 计算 Pandas 中具有相同列值的行的平均值

r - 将嵌套循环的结果写入 R 中的向量对象

PHP-While 循环

python - 有没有办法在 for 循环中添加多个条件?

windows - 具有多行主体的循环

javascript - 如何找到两组对象的差异?

Android 应用程序开发中的 Java 与 native 编码

c++ - 使用非 const 指针调用函数比使用指向 const 的指针的函数更像是一个模板函数

c++ - 如何确保 lambda 的自动参数类型相同?

c++ - Foreach 通过 QJsonObject 获取 Key/Value Pair