Table des matières

Chapitre précédent Sommaire principal Chapitre suivant

Les ranges et vues sur les collections

Les ranges

Les algorithmes utilisent des itérateurs pour manipuler les collections de données. Une contrainte forte est que les paires d'itérateurs doivent provenir de la même collection.

vector<int> v1(10), v2(10);
find(begin(v1), end(v1), 0); // ok
find(begin(v1), end(v2), 0); // erreur

Pour éviter ce type d'erreur, un range encapsule une paire d'itérateurs dans une classe. Il est plus facile dans ces conditions de vérifier la cohérence des itérateurs.

1. Ecrire une classe Range contenant une paire d'itérateurs

2. Réécrire les algorithmes de la bibliothèque standard pour prendre en compte les ranges

http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n4128.html

DP proxy ?

Problématique : on a une collection spécifique et l'on veut la manipuler comme si c'était une collection d'un autre type. Ou une sous collection

2 solutions :

string_view

Cf le TS

array_view

tableau multi dimensionnel

autre ?

collection pour “voir” que les nombres pairs ?

Chapitre précédent Sommaire principal Chapitre suivant