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

Подробнее про iterator...

int i =14; int j =2; for(i--;i>j;j+=2,i-=j%3){ System.out.println(i + " "); } Он возвращает 13,12,12,10, но я не понимаю причину этого!....
10 Июл 2021 в 21:18
Я начал изучать итераторы, пытаюсь реализовать их сам. Я создал класс, который должен предоставлять числа в диапазоне от определенного пользователем начала до определенного пользователем конца в итеративной форме. Теперь мой код выглядит следующим образом : class Can_be_divided_by_three: def __in....
4 Июл 2021 в 14:45
Я хочу разбить строку UTF-8 на куски равного размера. Я придумал решение, которое делает именно это. Теперь я хочу упростить его, удалив первый вызов сбора, если это возможно. Есть способ сделать это? fn main() { let strings = "ĄĆĘŁŃÓŚĆŹŻ" .chars() .collect::<Vec<char>>() ....
24 Июн 2021 в 23:40
Я действительно новичок в C и прохожу первые полгода в университете. Это мой первый вопрос по StackOverflow. Моя задача - запрограммировать его так, чтобы каждая строка, хранящаяся в числах, преобразовывалась в десятичное число, не меняя ничего вне основной функции. В течение последних 4 часов я пы....
13 Июн 2021 в 17:51
Как преобразовать массив в итератор, чтобы я мог вызывать как next, так и done? Я видел исчерпывающе, что массив является итерируемым Но у него нет ни одного свойства (const a = [1,2,3]; a.done; // returns undefined). Я пробовал получить прямой доступ к Symbol.iterator (const iter = a[Symbol.iterato....
9 Июн 2021 в 15:21
Я хотел бы знать, можно ли получить доступ к элементам std::vector<std::vector<int>> через итераторы: я не могу понять, почему это не компилируется: #include<vector> #include<iostream> std::vector<std::vector<int>> vec {{1,2},{3,4}} ; // to access the single vector auto it = vec.begin() ; //....
9 Июн 2021 в 10:50
При выполнении шорохов standard_library_types/iterators2.rs , Мне стало интересно, как std::iter::Iterator::map a> вызывает закрытие аргумента / функцию. Более конкретно, предположим, что у меня есть функция // "hello" -> "Hello" pub fn capitalize_first(input: &str) -> String { let mut c = i....
Я работаю над файлом, который я должен повторять вектором объекта, но по какой-то причине я получаю эту ошибку: No viable conversion from '__wrap_iter<std::__1::vector<MenuItem *>::const_pointer>' to '__wrap_iter<std::__1::vector<MenuItem>::pointer>' Это линия, которая вызывает ошибку: for (vector<....
2 Июн 2021 в 12:53
У меня есть набор данных, как Cars1 (генерируют его с кодом ниже), с годами в имени переменной. %macro test1(); data cars1; set sashelp.cars (keep = make model); %do i = 2012 %to 2014; make&i. = make; %end; run; %mend test1; %test1(); Который выглядит что-то вроде этого ... Mak....
1 Июн 2021 в 04:49
В [ITERATOR.conecept.forward], {{x0} } определяется как: template<class I> concept forward_­iterator = input_­iterator<I> && derived_­from<ITER_CONCEPT(I), forward_iterator_tag> && incrementable<I> && sentinel_­for<I, I>; И std::sentinel_for<I, I> определяется как: template<class ....
31 Май 2021 в 16:16
Если я создаю карту для имен и дней рождения. Когда я вступаю в рождение, что заканчивается 0, он меняет это число на восьмеричное. Как распечатать день рождения, т.е. 010525 == 4437, поэтому когда я звоню it -> second, он будет печатать 010525 #include <stdio.h> #include <iterator> #include <string....
30 Май 2021 в 08:17
В документации для mmap говорится, что "файловые объекты с отображением в память вести себя как bytearray и как файловые объекты. " Тем не менее, это, похоже, не распространяется на стандартный цикл for: по крайней мере для Python 3.8.5 на Linux, который в настоящее время использую, каждый элемент ....
29 Май 2021 в 14:55
Может быть, глупый вопрос, но у меня есть массив, и я хотел бы создать армаратер, но с компенсацией. Пример, я следующий массив: $fruits = [ 1 => 'banana', 2 => 'apple', 3 => 'orange', ... 20 => 'raspberry' ] Мое смещение 3. Я хочу создать Arrayiterator с массивом $ Fruits и $ offset. Как....
28 Май 2021 в 13:49
Это может звучать немного безумно, но у меня есть итератор с элементами {N = 10**409. Есть ли способ получить предметы с конца этого «списка»? Я Когда я звоню next(iterator) Это дает мне то, что я хочу быть последним, но чтобы добраться до того, что я хочу быть первым, что мне нужно позвонить next(i....
27 Май 2021 в 06:21
В [alg.unique], подпись ranges::unique_copy определяется как: template<input_­iterator I, sentinel_­for<I> S, weakly_­incrementable O, class Proj = identity, indirect_­equivalence_­relation<projected<I, Proj>> C = ranges::equal_to> requires indirectly_­copyable<I, O> && (forwar....
26 Май 2021 в 15:40
Я пытался сделать это template <class V> class myiterator: std::iterator<std::random_access_iterator_tag, V>{ reference a; }; Как в этом примере class myiterator: std::iterator<std::random_access_iterator_tag, int>{ reference a; }; Но у меня возникла ошибка «ссылка» не называет тип ». Как....
25 Май 2021 в 20:42
Я не знаю, почему в приведенном ниже коде итерация не останавливается в первом встреченном None (после достижения пустого диапазона 0..0) fn main() { let iter = (0..) .flat_map(move |i| if i < 10 { (0..i).into_iter() } else { 0..0 }) .fuse(); for i in iter { println!(....
25 Май 2021 в 14:07
Похоже, у меня проблемы с Rust, и я был бы признателен за помощь. У меня есть собственный struct, который реализует трейт Iterator, и отдельный struct (также Iterator), который я хотел бы иметь возможность обернуть все, что представится как итеративный. Некоторые из них кажутся достижимыми с пом....
25 Май 2021 в 02:44
У меня есть выражение Tree, которое генерирует список Tree. Список варьируется в зависимости от выражения, которое используется для вычисления числа, например, T = ['-', ['+', ['-', 75, ['-', 10, 3]], ['-', 100, 50]], 3] Или же T = ['+', ['*', 5, 4], ['-', 100, ['/', 20, 2]]] Я хочу перебрать кажды....
24 Май 2021 в 06:10
Быстрый вопрос о том, как что-то оценивается компилятором. В приведенном ниже коде мне интересно, является ли то, что я написал, хорошей идеей или мне следует быть более точным. constexpr auto Checksum = [](const std::vector<uint8_t>& values) -> std::array<uint8_t, 6> { std::vector<uint8_t> data{....
22 Май 2021 в 13:06
У меня есть этот фрагмент кода. Эта функция не копирует соседние повторяющиеся символы, а сохраняет только один из них. Чтобы сделать это короче, я решил использовать std :: prev с iterator.begin (). Я знаю, что это (очень) плохая практика, я пришел из C, но в C ++ все несколько иначе. Неопредел....
22 Май 2021 в 12:52
У меня есть вектор символа, который выглядит примерно так C:/Users/person/Desktop/Albedo.pngC:/Users/person/Desktop/Metallic.pngC:/Users/person/Desktop/Noice.pngC:/Users/person/Desktop/AO.png Как разбить вектор на отдельные пути? То есть я хочу иметь std::string path1; // = C:/Users/person/Desktop....
22 Май 2021 в 09:29
Допустим, у нас есть буферизованный считыватель и мы хотим собрать из него строки и распространить любые ошибки с помощью ?: let lines: Vec<_> = rdr.lines().collect()?; Это не компилируется, потому что error[E0277]: the size for values of type `str` cannot be known at compilation time Поиск ответа ....
22 Май 2021 в 01:27
Это пример кода с использованием std::reverse_iterator: template<typename T, size_t SIZE> class Stack { T arr[SIZE]; size_t pos = 0; public: T pop() { return arr[--pos]; } Stack& push(const T& t) { arr[pos++] = t; return *this; } auto begin() { ....
21 Май 2021 в 13:55
Следующий цикл for отлично работает for (let count = 0;; count++) { console.log(count); if (count >= 3) break } Выдает ошибку, если стоит только одна точка с запятой ; вместо двух. for (let count = 0; count++) { console.log(count) if (count >= 3) break } Uncaught SyntaxError:....
21 Май 2021 в 08:01