Получить индекс итератора списка - PullRequest
0 голосов
/ 07 мая 2019

У меня есть отсортированный list<int>, и я добавлю в него элемент с таким индексом, чтобы список сохранял сортировку:

list<int> l;
list<int>::iterator upper;

for(int i = 0; i < n; i++) l.push_back(i);

int x = 15;

upper = upper_bound (l.begin(), l.end(), x);
l.insert(up, aux);

cout<<"Added "<<x<<" at index "<<(upper - l.begin())<<endl;

Разница между итераторами в cout не работает для списков, так как я могу быстро найти этот индекс?

Игнорируя for, я хочу, чтобы эта полная операция была O (lg (n)), что является временем двоичного поиска.

Если бы я мог получить этот индекс в постоянное время, было бы здорово. Использование vector не вариант.

...