Вопросы с тегом «iterator»

Итератор - это объектно-ориентированный паттерн программирования, который позволяет проходить через коллекцию, независимо от фактической реализации или адресов объектов в физической памяти. Это один из поведенческих шаблонов «Банды четырех».

30
Что делает ключевое слово «yield»?
Что такое yieldключевое слово в Python и для чего оно нужно? Например, я пытаюсь понять этот код 1 : def _get_child_candidates(self, distance, min_dist, max_dist): if self._leftchild and distance - max_dist < self._median: yield self._leftchild if self._rightchild and distance + max_dist >= self._median: yield self._rightchild А это звонилка result, candidates = …




6
Правила аннулирования итераторов
Каковы правила аннулирования итераторов для контейнеров C ++? Желательно в формате сводного списка. (Примечание. Предполагается, что это будет вход в FAQ по C ++ в Stack Overflow . Если вы хотите критиковать идею предоставления FAQ в этой форме, то публикация в meta, с которой все это началось, будет подходящим местом …
543 c++  c++11  iterator  c++17  c++-faq 


8
Как преобразовать итератор в поток?
Я ищу краткий способ преобразовать Iteratorв Streamили более конкретно, чтобы «просмотреть» итератор в виде потока. Из соображений производительности я бы хотел избежать копирования итератора в новый список: Iterator<String> sourceIterator = Arrays.asList("A", "B", "C").iterator(); Collection<String> copyList = new ArrayList<String>(); sourceIterator.forEachRemaining(copyList::add); Stream<String> targetStream = copyList.stream(); Основываясь на некоторых предложениях в комментариях, я …
468 java  iterator  java-8 

12
Что такое итератор, итерация и итерация?
Какое самое основное определение «итерируемого», «итератора» и «итерации» в Python? Я прочитал несколько определений, но я не могу определить точное значение, так как оно все равно не впитается. Может кто-нибудь, пожалуйста, помогите мне с 3 определениями в терминах непрофессионала?


11
Сортировка вектора по убыванию
Должен ли я использовать std::sort(numbers.begin(), numbers.end(), std::greater<int>()); или std::sort(numbers.rbegin(), numbers.rend()); // note: reverse iterators отсортировать вектор в порядке убывания? Есть ли какие-либо преимущества или недостатки с одним подходом или другим?
310 c++  sorting  stl  vector  iterator 

8
Как реализовать итератор в стиле STL и избежать распространенных ошибок?
Я сделал коллекцию, для которой хочу предоставить итератор с произвольным доступом в стиле STL. Я искал пример реализации итератора, но не нашел. Я знаю о необходимости постоянных перегрузок []и *операторов. Какие требования предъявляются к итератору в стиле «STL» и каких других ошибок следует избегать (если таковые имеются)? Дополнительный контекст: это …

13
Получить первый элемент из итерируемого, который соответствует условию
Я хотел бы получить первый элемент из списка, соответствующего условию. Важно, чтобы полученный метод не обрабатывал весь список, который может быть довольно большим. Например, следующая функция является адекватной: def first(the_iterable, condition = lambda x: True): for i in the_iterable: if condition(i): return i Эту функцию можно использовать примерно так: >>> …
303 python  iterator 

12
Конвертировать Iterator в ArrayList
Учитывая Iterator<Element>, как мы можем преобразовать это Iteratorв ArrayList<Element>(или List<Element>) наилучшим и самым быстрым способом, чтобы мы могли использовать ArrayListтакие операции над ним, как get(index), add(element)и т. Д.
241 java  list  arraylist  iterator 

6
Как правильно реализовать пользовательские итераторы и const_iterators?
У меня есть пользовательский класс контейнера , для которого я хотел бы написать iteratorи const_iteratorклассы. Я никогда не делал этого раньше, и мне не удалось найти подходящее руководство. Каковы рекомендации по созданию итераторов, и что я должен знать? Я также хотел бы избежать дублирования кода (я чувствую это const_iteratorи iteratorделюсь …

27
Зачем использовать итераторы вместо индексов массивов?
Возьмите следующие две строки кода: for (int i = 0; i < some_vector.size(); i++) { //do stuff } И это: for (some_iterator = some_vector.begin(); some_iterator != some_vector.end(); some_iterator++) { //do stuff } Мне сказали, что второй способ предпочтительнее. Почему именно это?

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.