Обход элементов вектора векторов
Я имею такую структуру данных, имитирующих матрицу значений:vector <vector<int>> G. Мне нужно написать функцию, которая принимает на вход такой вектор и возвращает такую же структуру данных, однако с измененными значениями.
vector<vector<int>> double_values(vector <vector<int>> G){
for (int i = 0; i < G.size(), i++)
{
//здесь я могу итерироваться по строкам
for (int j = 0; j < G[i].size; j++) {
//но так я уже делать не могу
}
}
}
Как мне получить доступ к конкретным элементам внутренних векторов, если я не могу обращаться к ним как к G[i]?
Ответы (1 шт):
Автор решения: Harry
→ Ссылка
Если исправить ошибки - запросто можете:
for (int i = 0; i < G.size(); i++)
{
//здесь я могу итерироваться по строкам
for (int j = 0; j < G[i].size(); j++) {
//но так я делать МОГУ
cout << G[i][j] << endl;
}
}
Сами обнаружите, что я изменил? :)
И еще - незачем делать копию такого тяжеловесного объекта, как вектор векторов - передавайте его как константную ссылку.
А еще можно выполнять итерации с помощью цикла по диапазону:
for(const auto& F : G)
{
for (auto k: F) {
cout << k << endl;
}
}