#include <list>
#include <iostream>
#include <algorithm>
#include <iterator>
using namespace std;
int main() {
list<int> l;
l.push_back(0);
l.push_back(0);
l.push_back(0);
l.push_back(0);
list<int>::iterator i;
for (i = l.begin(); i != l.end(); i++)
cout << *i << endl;
cout << endl;
i = l.begin();
i++;
i++;
l.insert(i, 999);
for (i = l.begin(); i != l.end(); i++)
cout << *i << endl;
cout << endl;
i = l.end();
--i;
--i;
l.insert(i, 200);
for (i = l.begin(); i != l.end(); i++)
cout << *i << endl;
sort(l.begin(), l.end()); // ругается на код заголовка
return 0;
}
error C2784: '_RanIt1::difference_type std::operator -(std::move_iterator<_RanIt> &,const std::move_iterator<_RanIt2> &)' : could not deduce template argument for 'std::move_iterator<_RanIt> &' from 'std::_List_iterator<_Mylist>'
std::sort требует итераторы с произвольным доступом (Random Access Iterator), а итераторы std::list - это двунаправленные итераторы (Bidirectional Iterator).
Об этом и говорит ошибка компилятора - у итераторов std::list нету operator- (вычитания).
все понял сам разобрался sort() для list работать не будет
Сборка персонального компьютера от Artline: умный выбор для современных пользователей