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);
}
}
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 esInformationsquelleAutor eilchner | 2014-11-14
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie ganz einfach in einer Schleife durch den Vektor durch seine Größe, verwenden Sie einfach die
size()
member-Funktion:Es fehlt endline.
InformationsquelleAutor 0x499602D2
Wenn Sie ein Vektor von Vektoren, dann können Sie es auf folgende Weise mit dem range-basierte for-Anweisung
Wenn Sie eine Lösung basierend auf C++ 2003 wird dann der code Aussehen könnte
InformationsquelleAutor Vlad from Moscow
Funktion verwenden
size()
um die Anzahl der Elemente.>>
im pre-C++11.InformationsquelleAutor JPLemelin
Ich würde es folgendermaßen ändern:
InformationsquelleAutor Jonathan