Итак, я создал матрицу, как это:Есть ли способ заполнить матрицу (вектор векторов) элегантно, используя STL?
constexpr size_t row = 3, col = 5;
std::vector<std::vector<int>> matrix(row, std::vector<int>(col));
И я пытаюсь заполнить его с вводом пользователя. Это лучшее решение, у меня до сих пор:
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";
}
Это выглядит хорошо, работает хорошо, но должен быть способ достижения этого с использованием STL, чтобы сделать этот код менее громоздким.
Так что я прошу вас о помощи, заполнив мою матрицу с помощью ввода пользователем. Любая помощь будет оценена!
Спасибо.
Это выглядит элегантно для меня, это то, что вы ожидаете от построения 2D-матрицы. Вы можете запутать его дальше, если хотите, используя трюки, например, генерируя список индексов для каждого размера и обменивая их двумя, чтобы получить пары (X, Y), но я не вижу в этом большой помощи. Единственное улучшение, которое я вижу, это обернуть вектор> в один класс Matrix и работать с ним. –
@ AlexM. Или определить оператор >> для std :: vector и использовать istream_iterator –