Вектор не изменяет элементы
Я должен добавить новый элемент и переместить некоторые другие в моем векторе в этой программе \/, но векторные элементы вообще не хотят меняться.
#include <iostream> #include <deque> using namespace std; int main() { int n; cin >> n; vector <int> v; for (auto i = 0, j = 0; i < n; i++) { cin>>j; v.push_back(j); } // int max = 0, ind = 0; for (auto i:v) if (max <= i) { max = i; ind = i; } // v.push_back(0); for (auto i = n, j =0; i > ind+1; i--) { j = v[i]; -----this code does not work v[i] = v[i-1];-------this code does not work v[i-1] = j;----------this code does not work } v[ind+1] = v[ind];--------- this code does not work // for (auto i:v) cout << i << ' '; cout << endl; return 0; }
Я знаю, это может показаться смешным, но это так!
Пример ввода данных:
3
3 1 1
Ожидаемый результат:
3 3 1 1
Реальный объем производства:
3 1 1 0
Что я уже пробовал:
прочтите несколько статей о векторном типе в Сети;
пробовал использовать функцию swap (), но она тоже не работает;
попробовал использовать deque или queue вместо vector - тот же результат;
я думаю, что этот код должен работать, и не знаю, почему он этого не делает.
Richard MacCutchan
Пройдитесь по коду с помощью отладчика и посмотрите, почему.