Articles of iterator

Itération sur Enum non incrémental

Avant de vous demander, j’ai regardé et cherché ceci sur SO, et ne peut pas trouver une réponse solide. Je dois pouvoir effectuer une itération dynamic sur un enum qui comporte des valeurs non incrémentielles, par exemple: typedef enum { CAPI_SUBTYPE_NULL = 0, /* Null subtype. */ CAPI_SUBTYPE_DIAG_DFD = 1, /* Data Flow diag. */ […]

C #: le retour de rendement dans un foreach échoue – le corps ne peut pas être un bloc iterator

Considérez ce morceau de code obscurci. L’intention est de créer un nouvel object à la volée via le constructeur anonyme et de le yield return . L’objective est d’éviter de devoir conserver une collection locale simplement pour la return simplement. public static List BuildComputerAssets() { List idTags = GetComputerIdTags(); foreach (var pcTag in idTags) { […]

Comment supprimer la constance de const_iterator?

Dans le cadre de cette question, const_iterators – const_iterators plus rapide? J’ai une autre question sur const_iterators . Comment supprimer la constance d’un const_iterator ? Bien que les iterators soient des formes généralisées de pointeurs mais que const_iterator et iterator s soient deux choses différentes. Par conséquent, je crois que je ne peux pas non […]

Est-il possible de fusionner des iterators en Java?

Est-il possible de fusionner des iterators en Java? J’ai deux iterators et je veux les combiner / fusionner pour que je puisse parcourir leurs éléments en une seule fois (dans la même boucle) plutôt qu’en deux étapes. Est-ce possible? Notez que le nombre d’éléments dans les deux listes peut être différent, par conséquent, une boucle […]

Itérateur horizontal

Y at-il une implémentation d’iterator existante (peut-être sous boost) qui implémente une sorte d’iterator d’aplatissement? Par exemple: unordered_set<vector > s; s.insert(vector()); s.insert({1,2,3,4,5}); s.insert({6,7,8}); s.insert({9,10,11,12}); flattening_iterator<unordered_set<vector >::iterator> it( … ), end( … ); for(; it != end; ++it) { cout << *it << endl; } //would print the numbers 1 through 12

Est-ce que std :: vector :: swap invalide les iterators?

Si je permute deux vecteurs, leurs iterators restront-ils valides, pointant maintenant simplement vers le “autre” conteneur, ou l’iterator sera-t-il invalidé? C’est-à-dire, donné: using namespace std; vector x(42, 42); vector y; vector::iterator a = x.begin(); vector::iterator b = x.end(); x.swap(y); // a and b still valid? Pointing to x or y? Il semble que le std […]

Itérer avec boucle ou boucle?

Je vois souvent du code comme: Iterator i = list.iterator(); while(i.hasNext()) { … } mais j’écris cela (lorsque Java 1.5 n’est pas disponible ou que chacun ne peut pas être utilisé) en tant que: for(Iterator i = list.iterator(); i.hasNext(); ) { … } car C’est plus court Il garde une plus petite scope Cela réduit […]

Itération par paires en C # ou enumerator de fenêtre glissante

Si j’ai un IEnumerable comme: ssortingng[] items = new ssortingng[] { “a”, “b”, “c”, “d” }; Je voudrais passer en boucle toutes les paires d’éléments consécutifs (fenêtre coulissante de taille 2). Ce qui serait (“a”,”b”), (“b”, “c”), (“c”, “d”) Ma solution était ceci public static IEnumerable<Pair> Pairs(IEnumerable enumerable) { IEnumerator e = enumerable.GetEnumerator(); e.MoveNext(); T […]

Supprimer un élément du vecteur lors d’une itération?

J’ai un vecteur qui contient des éléments actifs ou inactifs. Je souhaite que la taille de ce vecteur rest faible pour les problèmes de performances, je souhaite donc que les éléments marqués inactifs soient supprimés du vecteur. J’ai essayé de le faire en itération mais je reçois l’erreur “vector iterators incompatible”. vector::iterator i = orbsList.begin(); […]

Comment créer un générateur / iterator avec l’API Python C?

Comment répliquer le code Python suivant avec l’API Python C? class Sequence(): def __init__(self, max): self.max = max def data(self): i = 0 while i < self.max: yield i i += 1 Jusqu’à présent, j’ai ceci: #include #include /* Define a new object class, Sequence. */ typedef struct { PyObject_HEAD size_t max; } SequenceObject; /* […]