Bonjour, je rencontre le problème suivant, assez délicat:
Je désire utiliser une structure de vecteur de vecteurs (std::vector) me permettant les opérations suivantes:
vect[i] me renvoie le ième éléments de liste qu'on obtiendrait en fusionnant les vecteurs contenu dans un vecteur. Par exemple sur la structure suivante:
v1 v2 v3 v4
[2] [5] [9] [6]
[3] [0] [9]
[4] [2]
l'opérateur vect[6] me renverrait 9. Je veux que cette opération se fasse en temps constant O(1). Je pense que c'est possible car les éléments d'un vecteurs sont contigus en mémoire, du coup les éléments d'un vecteur de vecteur le sont aussi non?
Cela dit je ne vois pas du tout comment coder une classe qui me permettrait ce genre de comportement. Et comment redéfinir les itérateurs pour ce cas de figures?
Cordialement,
Partager