Also, ich habe eine Matrix wie folgt erstellt:Gibt es eine Möglichkeit, eine Matrix (Vektor von Vektoren) elegant mit STL zu füllen?
constexpr size_t row = 3, col = 5;
std::vector<std::vector<int>> matrix(row, std::vector<int>(col));
Und ich versuche es die Eingabe mit Benutzern zu füllen. Dies ist die beste Lösung, die ich bisher habe:
for (size_t i = 0; i < matrix.size(); i++)
{
for (size_t j = 0; j < matrix[i].size(); j++)
{
std::cout << "Matrix[" << i << "][" << j << "] = ";
std::cin >> matrix[i][j];
}
std::cout << "\n";
}
Es sieht gut, funktioniert gut, aber es muss ein Weg sein, um diese mit STL zu erreichen, um diesen Code zu machen weniger sperrig.
Also ich frage nach Ihrer Hilfe beim Ausfüllen meiner Matrix mit Benutzereingaben. Jede Hilfe wird geschätzt!
Danke.
Das sieht elegant aus, so wie man es erwarten würde. Sie können es weiter verschleiern, wenn Sie mit Tricks wie das Erzeugen einer Liste von Indizes für jede Größe und das Zippen der zwei, um (X, Y) -Paare zu erhalten, aber ich sehe nicht viel Hilfe darin sehen. Die einzige Verbesserung, die ich sehe, wäre, Vektor> in eine einzige Matrix-Klasse zu verpacken und damit zu arbeiten. –
@AlexM. Oder Definieren von Operator >> für std :: vector und Verwenden von iStream_iterator –