Поменять строчки местами в векторе векторов
Нужна помощь,не получаеться поменять строчки местами в векторе векторов пробовал через swap,но у меня ничего не вышло.
#include <iostream>
#include <Windows.h>
#include <vector>
#include <algorithm>
#include <ctime>
#include <cstdlib>
#include <iomanip>
using namespace std;
int main() {
SetConsoleCP(1251);
SetConsoleOutputCP(1251);
int n, m;
cout << "Введите колличество строк" << endl;
cin >> n;
cout << "Введите колличество элементов в строке" << endl;
cin >> m;
vector < vector <int> > a(n, vector <int>(m)); // Объявление вектора на n строк по m элементов
for (int i = 0; i < n; i++)
for (int j = 0; j < m; j++)
{
cin >> a[i][j];
}
for (int i = 0; i < n; i++)
{
for (int j = 0; j < m; j++)
cout << a[i][j] << ' ';
cout << endl;
}
swap(a[n], a[m]);
system("pause");
return 0;
}
Ответы (1 шт):
Автор решения: Василий Молнер
→ Ссылка
Ты пытаешься поменять строку с номером n, это больше чем зарезервировано под вектор (индексация с 0, значит последний номер строки n-1)