Zwei-dimensionaler Vektor drucken

Habe ich ein zwei-dimensionales string-Vektor, die ich brauche, um zu drucken. Das ganze Programm sollte eine Zeile aus einer txt-Datei speichern jedes Wort von ihm wie ein anderes element, und drücken Sie dann die "word-Vektor" in einen Vektor, enthält beispielsweise 100 Zeilen. Ich habe alles, was geht, aber das problem kommt, wenn ich drucken Sie die vector. Jede Zeile kann eine andere Anzahl von Wörtern, ex:

Ich mag Kuchen

viel.

So kann ich nicht verwenden:

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

da die zweite Zeile nicht enthalten 3 Elemente und das Programm schließt.
Keine Ahnung, wie es zu tun? Hinweis: mein Dozent nicht annehmen, C++11, so dass eine Lösung auf Basis von C++98 wird gebeten. Das ist meine Funktion:

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);
    }
}
vorbei an in der Größe ist albern. lines.size() gibt Sie die Anzahl der Vektoren in Zeilen, lines[i].size() gibt Sie die Anzahl der Wörter in der Zeile TADA.
Sie müssen nicht wissen, wie match Elemente im Vektor, den Sie haben, um es zu drucken (oder Iteration im Allgemeinen). Verwenden Sie einfach .size() @IdeaHat gesagt, und das ist alles. Und, es spielt keine Rolle, welche Art von Elemente werden gespeichert, im Vektor.
Oder schreiben Sie operator<< Spezialisierung für vector und verwenden Sie es

InformationsquelleAutor eilchner | 2014-11-14

Schreibe einen Kommentar