Хотя стандартные алгоритмы должны быть максимально оптимизированными, насколько это возможно, на основе категории итератора, мне кажется, что на таблице осталось много производительности, не имея возможности рассмотреть базовый контейнер. Последнее) < /code>, в то время как базовые контейнеры могут обеспечить лучший интерфейс: < /p>
- o (d) где d = min (расстояние (первое, среднее), расстояние (среднее, последнее)) с использованием повторного pop_front и push_back (или в другом месте) при вращении всего контейнера, так что O (1) для общего случая вращения одного шага
- Технически всегда o (n) из -за удаления или вставки в начале, но может быть лучше оптимизировано для тривиально копируемых типов путем копирования нескольких элементов сразу
Является ли мое рассуждение здесь правильно? Можно ли оптимизировать приведенные выше случаи с помощью std :: ranges :: rotate ?
Хотя стандартные алгоритмы должны быть максимально оптимизированными, насколько это возможно, на основе категории итератора, мне кажется, что на таблице осталось много производительности, не имея возможности рассмотреть базовый контейнер. Последнее) < /code>, в то время как базовые контейнеры могут обеспечить лучший интерфейс: < /p> [list] [*][code]std::(forward_)list[/code] - o (1) с использованием splice для всех случаев [*][code]std::deque[/code] - o (d) где d = min (расстояние (первое, среднее), расстояние (среднее, последнее)) с использованием повторного pop_front и push_back (или в другом месте) при вращении всего контейнера, так что O (1) для общего случая вращения одного шага [*] [code]std::vector[/code] - Технически всегда o (n) из -за удаления или вставки в начале, но может быть лучше оптимизировано для тривиально копируемых типов путем копирования нескольких элементов сразу [/list] Является ли мое рассуждение здесь правильно? Можно ли оптимизировать приведенные выше случаи с помощью std :: ranges :: rotate ?
Хотя стандартные алгоритмы должны быть максимально оптимизированными, насколько это возможно, на основе категории итератора, мне кажется, что на таблице осталось много производительности, не имея возможности рассмотреть базовый контейнер. Последнее)...
Если подкласс Extens Superclass , итератор не может быть поднят в итератор . Тем не менее, у меня есть ситуация, в которой требуются интерфейсыIterator
public Iterator list(String keyword) {
Collection result = service.searchByKeyword(keyword);...
Если SubClass расширяет SuperClass, Iterator нельзя привести к Iterator. Однако у меня есть ситуация, которую требуют интерфейсыIterator
public Iterator list(String keyword) {
Collection result = service.searchByKeyword(keyword);
return...
Я практиковал стандартную библиотеку шаблонов и в этом, когда я заменил Vector :: iterator itr; с автоматическим ITR; Была ошибка, в которой говорилось, что ITR не была объявлена в области применения, и ITR не называет тип.