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

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

865
Как перебирать два списка параллельно?

У меня есть две итерации в Python, и я хочу просмотреть их попарно: foo = (1, 2, 3) bar = (4, 5, 6) for (f, b) in some_iterator(foo, bar): print "f: ", f, "; b: ", b Это должно привести к: f: 1; b: 4 f: 2; b: 5 f: 3; b: 6 Один из способов сделать это - перебрать индексы: for i in xrange(len(foo)):...

543
Правила аннулирования итераторов

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

468
Как преобразовать итератор в поток?

Я ищу краткий способ преобразовать Iteratorв Streamили более конкретно, чтобы «просмотреть» итератор в виде потока. Из соображений производительности я бы хотел избежать копирования итератора в новый список: Iterator<String> sourceIterator = Arrays.asList("A", "B", "C").iterator();...

444
Что такое итератор, итерация и итерация?

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

310
Сортировка вектора по убыванию

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

306
Как реализовать итератор в стиле STL и избежать распространенных ошибок?

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

303
Получить первый элемент из итерируемого, который соответствует условию

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

241
Конвертировать Iterator в ArrayList

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

240
Как правильно реализовать пользовательские итераторы и const_iterators?

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

239
Зачем использовать итераторы вместо индексов массивов?

Возьмите следующие две строки кода: 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 } Мне сказали, что второй способ предпочтительнее. Почему именно...

214
Как получить перевернутый вид списка в списке на Java?

Я хочу иметь перевернутый вид списка в списке (аналогично List#sublistпредставлению списка в списке). Есть ли какая-то функция, которая обеспечивает эту функциональность? Я не хочу делать какие-либо копии списка или изменять его. Было бы достаточно, если бы в этом случае я мог получить хотя бы...

214
Как выбрать только один предмет из генератора?

У меня есть функция генератора, как показано ниже: def myfunct(): ... yield result Обычный способ вызова этой функции: for r in myfunct(): dostuff(r) Мой вопрос, есть ли способ получить только один элемент из генератора, когда мне нравится? Например, я хотел бы сделать что-то вроде: while True: ......

201
C ++ STL Векторы: Получить итератор из индекса?

Итак, я написал кучу кода, который обращается к элементам вектора stl по индексу [], но теперь мне нужно скопировать только часть вектора. Похоже, vector.insert(pos, first, last)это функция, которую я хочу ... за исключением того, что у меня есть только первый и последний как целые. Есть ли хороший...