История изменений
Исправление soomrack, (текущая версия) :
Проблема в том, что если по пути много прослоек и наворотов, то чтение исходников становится очень утомительным, а байт-кода практически бессмысленным. Поэтому и нужна документация, которая на разных уровнях абстракции четко объясняет что и как работает.
Вот, например, берем про std::list читаем:
std::list is a container that supports constant time insertion and removal of elements from anywhere in the container. Fast random access is not supported. It is usually implemented as a doubly-linked list. Compared to std::forward_list this container provides bidirectional iteration capability while being less space efficient.
Adding, removing and moving the elements within the list or across several lists does not invalidate the iterators or references. An iterator is invalidated only when the corresponding element is deleted.
и все понятно, ясно чего ожидать по сложности, и как изменение списка влияет на итератор. Но это даже не стандарт.
Берем стандарт С++ 2017, и с 833 страницы читаем про list и тоже все понятно, более того, тут прямо говорят, что list надо использовать тогда, когда есть частые вставки и удаления в середине последовательности, с этого прям начинают, а потом уже детали…
PS: а в питоне использовать list когда есть частые вставки/удаления не стоит, будет медленно, потому что, ***, это динамический массив (с зарезервированной памятью в конце, кмк), который он называет list.
Исправление soomrack, :
Проблема в том, что если по пути много прослоек и наворотов, то чтение исходников становится очень утомительным, а байт-кода практически бессмысленным. Поэтому и нужна документация, которая на разных уровнях абстракции четко объясняет что и как работает.
Вот, например, берем про std::list читаем:
std::list is a container that supports constant time insertion and removal of elements from anywhere in the container. Fast random access is not supported. It is usually implemented as a doubly-linked list. Compared to std::forward_list this container provides bidirectional iteration capability while being less space efficient.
Adding, removing and moving the elements within the list or across several lists does not invalidate the iterators or references. An iterator is invalidated only when the corresponding element is deleted.
и все понятно, ясно чего ожидать по сложности, и как изменение списка влияет на итератор. Но это даже не стандарт.
Берем стандарт С++ 2017, и с 833 страницы читаем про list и тоже все понятно, более того, тут прямо говорят, что list надо использовать тогда, когда есть частые вставки и удаления в середине последовательности, с этого прям начинают, а потом уже детали…
PS: а в питоне использовать list когда есть частые вставки/удаления не стоит, будет медленно, потому что, ***, это массив, который он называет list.
Исправление soomrack, :
Проблема в том, что если по пути много прослоек и наворотов, то чтение исходников становится очень утомительным, а байт-кода практически бессмысленным. Поэтому и нужна документация, которая на разных уровнях абстракции четко объясняет что и как работает.
Вот, например, берем про std::list читаем:
std::list is a container that supports constant time insertion and removal of elements from anywhere in the container. Fast random access is not supported. It is usually implemented as a doubly-linked list. Compared to std::forward_list this container provides bidirectional iteration capability while being less space efficient.
Adding, removing and moving the elements within the list or across several lists does not invalidate the iterators or references. An iterator is invalidated only when the corresponding element is deleted.
и все понятно, ясно чего ожидать по сложности, и как изменение списка влияет на итератор. Но это даже не стандарт.
Берем стандарт С++ 2017, и с 833 страницы читаем про list и тоже все понятно, более того, тут прямо говорят, что list надо использовать тогда, когда есть частые вставки и удаления в середине последовательности, с этого прям начинают, а потом уже детали…
PS: а в питоне использовать list когда есть частые вставки/удаления не стоит, будет медленно.
Исправление soomrack, :
Проблема в том, что если по пути много прослоек и наворотов, то чтение исходников становится очень утомительным, а байт-кода практически бессмысленным. Поэтому и нужна документация, которая на разных уровнях абстракции четко объясняет что и как работает.
Вот, например, берем про std::list читаем:
std::list is a container that supports constant time insertion and removal of elements from anywhere in the container. Fast random access is not supported. It is usually implemented as a doubly-linked list. Compared to std::forward_list this container provides bidirectional iteration capability while being less space efficient.
Adding, removing and moving the elements within the list or across several lists does not invalidate the iterators or references. An iterator is invalidated only when the corresponding element is deleted.
и все понятно, ясно чего ожидать по сложности, и как изменение списка влияет на итератор. Но это даже не стандарт.
Берем стандарт С++ 2017, и с 833 страницы читаем про list и тоже все понятно, более того, тут прямо говорят, что list надо использовать тогда, когда есть частые вставки и удаления в середине последовательности, с этого прям начинают, а потом уже детали…
Исходная версия soomrack, :
Проблема в том, что если по пути много прослоек и наворотов, то чтение исходников становится очень утомительным, а байт-кода практически бессмысленным. Поэтому и нужна документация, которая на разных уровнях абстракции четко объясняет что и как работает.
Вот, например, берем про std::list читаем:
std::list is a container that supports constant time insertion and removal of elements from anywhere in the container. Fast random access is not supported. It is usually implemented as a doubly-linked list. Compared to std::forward_list this container provides bidirectional iteration capability while being less space efficient.
Adding, removing and moving the elements within the list or across several lists does not invalidate the iterators or references. An iterator is invalidated only when the corresponding element is deleted.
и все понятно, ясно чего ожидать по сложности, и как изменение списка влияет на итератор. Но это даже не стандарт.
Берем стандарт С++ 2017, и с 833 страницы читаем про list и тоже все понятно, более того, тут прямо говорят, что list надо использовать тогда, когда есть часты вставки и удаления в середине последовательности, с этого прям начинают, а потом уже детали…