Есть код, который перед каждым максимальным элементом в векторе вставляет произвольный элемент, который вводится в переменную x Мне нужно сделать, чтоб элемент вставлялся после максимального, а не перед. Простой +1 не помогает, код ловит бесконечный цикл. #include <iostream> #include <vector> #include<algorithm> using namespace std; int main() { int x; cin>>x; cout<<'*'; int n = 5; vector<int> a(n); for (int i = 0; i<n; i++) { cin>>a[i]; } int max = *max_element(a.begin(), a.end()); for (vector <int>::iterator iter = a.begin(); iter!=a.end(); iter++) { if (*iter == max && (iter==a.begin() || *(iter-1)!=x) ) { a.insert(iter, x); iter=a.begin(); } } for (vector <int>::iterator iter = a.begin(); iter!=a.end(); iter++) { cout<<*iter<<" "; } return 0; } C #include <iostream> #include <vector> #include<algorithm> using namespace std; int main() { int x; cin>>x; cout<<'*'; int n = 5; vector<int> a(n); for (int i = 0; i<n; i++) { cin>>a[i]; } int max = *max_element(a.begin(), a.end()); for (vector <int>::iterator iter = a.begin(); iter!=a.end(); iter++) { if (*iter == max && (iter==a.begin() || *(iter-1)!=x) ) { a.insert(iter, x); iter=a.begin(); } } for (vector <int>::iterator iter = a.begin(); iter!=a.end(); iter++) { cout<<*iter<<" "; } return 0; }