Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
Complexity
Constant (recommended). Linear in some implementations.
if (list.size > 0)
list.front().field++;
if (!list.empty()) list.front().field++;
if (!list.empty()) x = list.front().field0->field1;А что мешает обязать list выдавать значение, удовлетворяющее данной семантике, за константное время?Мешает реализация splice() за O(1).
list<int> list1;
list<int> list2;
list1.splice( // Переместить все узлы list2
list1.end(),list2, // от первого вхождения 5
find(list2.begin(), list2.end(), 5), // до последнего вхождения 10
find(list2.rbegin(), list2.rend(), 10).base() // в конец listl
); Кстати, как часто вы пользуетесь это операцией? А всеми вышеперечисленными?
Даже если в моём велосипеде будет больше багов, сама система в целом будет работать надёжнее
Никто и не будет читать, кроме тех, кто разрабатывал непосредственно сам велосипед. Ведь команда пишет велосипед только для себя.Пишите код так, будто человек, который будет его поддерживать – маньяк-психопат, который знает, где вы живёте (с)
Неприятная особенность std::list, о которой не все знают