Я знаю, что vector<double>::iterator
возвращает произвольного доступа итераторы type.What это тип итератора, возвращаемый list<double>::iterator
.а это двунаправленного итератора?тип итератора для списков
ответ
Это двунаправленный, потому что вы все еще можете использовать ++ и - на нем. если вы можете делать только ++, это форвардный итератор (см. std :: forward_list).
:)) Хорошо, я бы сказал, что вы можете использовать ++ и - * потому что * он двунаправленный, а не наоборот ... –
Хм, я полагаю. Я думаю, что в любом случае это довольно ясно. – bstamour
@ LuchianGrigore: Я бы сказал, как это сказал bstamour. двунаправленный итератор - это концепция. Если итератор удовлетворяет требованиям концепции двунаправленного итератора, то это двунаправленный итератор. –
Да, это bidirectional iterator
.
n3337 23.3.5.1/1
Список представляет собой последовательность контейнер, который поддерживает двунаправленные итераторы
Хорошо, большая часть моего вопроса сам wrong.I понял после долгого изучения C++ ссылки . Поскольку мой вопрос не имеет большого смысла, я собираюсь ответить на него сам. vector<double>::iterator
возвращение чего-то не имеет смысла. Это тип. Стандартная библиотека стандарта C++ сильно использует typedefs в классах для псевдонимов других типов.
Так vector<double>:iterator
является type.To быть более точным является псевдонимом (с использованием ЬурейеЕ) .И, что псевдоним в случае vector<double>::iterator
является в random-access Iterator
type.In случае list<double>::iterator
, iterator
является псевдонимом bi-directional
типа итератора ,
Это также аналогично vector<double>::size_type
где size_type
представляет собой тип, который является псевдонимом size_t
типа
typedef size_t size_type
т.е. присутствует в vector<double>
классе.
Если вы обнаружили какие-либо заблуждения или ошибки. Пожалуйста, уточните.
- 1. Запись итератора для нескольких списков
- 2. итератора и * Тип итератора
- 3. Загадочный тип поведения итератора
- 4. Неверный тип итератора
- 5. Тип итератора для диапазона на основе цикла
- 6. Вернуть правильный тип итератора для связанного списка
- 7. F # Тип Аннотация для списков
- 8. Синтаксис для использования Итератора для массива списков STL
- 9. Как ограничить тип элемента итератора?
- 10. Каков тип итератора в STL?
- 11. Как определить тип интерфейса итератора?
- 12. Создание универсального итератора списков в Angular 2
- 13. Подмножество итератора для массивов/списков в C# без выхода
- 14. Тип данных для хранения длинных списков
- 15. CSS вход моделирование [тип = "??"] для избранных списков
- 16. Какой тип итератора требуется в функции шаблона?
- 17. Передача элемента итератора функции: неправильный тип указателя
- 18. Вывести тип итератора в шаблон функции?
- 19. Вложенный класс итератора не называет тип
- 20. Как написать тип итератора, переданного функции?
- 21. вывести тип аргумента из его итератора
- 22. Каков тип итератора, возвращаемый этой функцией Rust?
- 23. Тип вычитающего значения из итератора для возвращаемого типа функции шаблона
- 24. тип итератора для шаблона Раскол конструктор класса в C++
- 25. Метод Wierd для точечного итератора
- 26. итератора
- 27. Проверка типа для итератора?
- 28. Изменение итератора для циклов
- 29. отображение ArrayList для итератора
- 30. Lifetime для поля итератора
Просто точка на decorum. Если у вас есть googled "list iterator bi-directional", вы бы нашли то, что вам было нужно. Вероятно, именно поэтому вас занижают. –
'vector :: iterator' является * типом *, а не функцией. Он ничего не возвращает. Кроме того, вы имеете в виду «итератор произвольного доступа» или «итератор с произвольным доступом»? Мне нравится, что мои итераторы детерминированы ... –
Кроме того, с [справочной страницы] (http://en.cppreference.com/w/cpp/container/list): 'iterator \t BidirectionalIterator'. Увидев, что перечисленные в ** типах членов ** вид очищает точку Керрека. – chris