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

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

6
Создание собственных итераторов
Я пытаюсь изучить C ++, так что простите меня, если этот вопрос демонстрирует отсутствие базовых знаний, понимаете, факт в том, что мне не хватает базовых знаний. Мне нужна помощь в разработке итератора для созданного мной класса. У меня есть класс «Форма», в котором есть контейнер точек. У меня есть класс …
141 c++  iterator 

11
Итерация по вектору C ++ с использованием цикла for
Я новичок в языке C ++. Я начал использовать векторы и заметил, что во всем коде, который я вижу, для итерации по вектору через индексы, первый параметр forцикла всегда основан на векторе. В Java я мог бы сделать что-то вроде этого с ArrayList: for(int i=0; i < vector.size(); i++){ vector[i].doSomething(); …

3
Разница между итератором и листитератором?
Iterator ite = Set.iterator(); Iterator ite = List.iterator(); ListIterator listite = List.listIterator(); Мы можем использовать, Iteratorчтобы пройти через Seta, a Listили a Map. Но ListIteratorможет использоваться только для прохождения List, а не для прохождения Set. Зачем? Я знаю, что основное отличие состоит в том, что с итератором мы можем двигаться …



12
Итерация по карте машинописного текста
Я пытаюсь перебрать карту машинописного текста, но продолжаю получать ошибки и пока не могу найти решения для такой тривиальной проблемы. Мой код: myMap : Map<string, boolean>; for(let key of myMap.keys()) { console.log(key); } И я получаю ошибку: Тип «IterableIteratorShim <[string, boolean]>» не является типом массива или строковым типом. Полная трассировка …

3
Что произойдет, если вы вызовете erase () для элемента карты во время итерации от начала до конца?
В следующем коде я перебираю карту и проверяю, нужно ли удалить элемент. Безопасно ли стереть элемент и продолжить итерацию, или мне нужно собрать ключи в другом контейнере и выполнить второй цикл для вызова erase ()? map<string, SerialdMsg::SerialFunction_t>::iterator pm_it; for (pm_it = port_map.begin(); pm_it != port_map.end(); pm_it++) { if (pm_it->second == …
133 c++  stl  iterator 


7
Что такое Ruby-способ перебора сразу двух массивов
Скорее синтаксическое любопытство, чем проблема, которую нужно решить ... У меня есть два массива одинаковой длины, и я хочу перебрать их сразу - например, чтобы вывести оба их значения по определенному индексу. @budget = [ 100, 150, 25, 105 ] @actual = [ 120, 100, 50, 100 ] Я знаю, …
127 ruby  arrays  iterator 

5
Почему итерация по списку может быть быстрее, чем его индексация?
Читая документацию Java для списка ADT, говорится: Интерфейс List предоставляет четыре метода позиционного (индексированного) доступа к элементам списка. Списки (например, массивы Java) отсчитываются от нуля. Обратите внимание, что эти операции могут выполняться во времени, пропорциональном значению индекса для некоторых реализаций (например, класса LinkedList). Таким образом, итерация по элементам в списке …
125 java  list  iterator 


6
Итерировать по строкам строки
У меня есть многострочная строка, определенная следующим образом: foo = """ this is a multi-line string. """ Эту строку мы использовали в качестве тестового ввода для синтаксического анализатора, который я пишу. Функция-синтаксический анализатор получает file-объект в качестве входных данных и выполняет итерацию по нему. Он также вызывает next()метод напрямую, чтобы …
119 python  string  iterator 

7
Есть ли выражение для бесконечного генератора?
Есть ли простое выражение генератора, которое может давать бесконечные элементы? Это чисто теоретический вопрос. Здесь нет нужды в "практическом" ответе :) Например, легко сделать конечный генератор: my_gen = (0 for i in xrange(42)) Однако, чтобы создать бесконечное число, мне нужно «засорить» свое пространство имен ложной функцией: def _my_gen(): while True: …

7
Scala вниз или уменьшение цикла?
В Scala вы часто используете итератор для выполнения forцикла в возрастающем порядке, например: for(i <- 1 to 10){ code } Как бы вы сделали это, чтобы он вырос с 10 до 1? Думаю, 10 to 1дает пустой итератор (как обычная математика диапазона)? Я сделал скрипт Scala, который решает эту проблему, …

9
Какой лучший способ перебрать два или более контейнеров одновременно
C ++ 11 предоставляет несколько способов перебора контейнеров. Например: Цикл на основе диапазона for(auto c : container) fun(c) std :: for_each for_each(container.begin(),container.end(),fun) Однако каков рекомендуемый способ перебора двух (или более) контейнеров одинакового размера для выполнения чего-то вроде: for(unsigned i = 0; i < containerA.size(); ++i) { containerA[i] = containerB[i]; }

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