Программа должна находить максимальный элемент в векторе и удалять его, а затем выводить вектор уже без него. У меня ошибка в выделенной строке. Каким образом можно сделать так, чтобы программа работала правильно?
#include <iostream>
#include <iostream>
#include <cstdlib>
#include <ctime>
#include <vector>
using namespace std;
int main()
{
srand(time(0));
int n, i, j, index,k,m,p,f,ta;
cout << "Vvedite chislo ellementov massiva" << endl;
cin >> n;
vector<int>a(n);
vector<int>::iterator it;
cout << "Ishodniy massiv: ";
for(i=0; i<n; i++) {
a[i]=rand() % 50-25;
cout << a[i]<<",";
}
cout << endl;
cout<<"Udalim maksimalniy ellement"<<endl;
int max = 0;
index = 0;
for (it = a.begin(); it!= a.end(); ++it)
if (max < *it)
max = --*it;
**a.erase(max);**
cout << "Poluchenniy massiv : ";
for (it = a.begin() ; it!=a.end() ; ++it){
cout<<*it;}
cout<<endl;
system("pause");
}
Смотря как читать
Самому конечно можно по индексу, что в коде выше и есть.
или еще проще если только значения нужны: for (int num : a) { cout << num; }
А функции STL обычно итераторы используют. Например, потому что не во всех контейнерах есть индексы.