Bonjour,

J'ai surchargé std::vector afin de créer un vecteur circulaire. L'idée c'est que si mon vecteur fait une taille de 10, Vect.at(12) me renvoie le troisème objet, ou alors Vect.at(-2) me renvoie l'avant dernier objet ...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
class CircularVector : public std::vector<T_Obj>
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
template<typename T_Obj>
T_Obj &CircularVector<T_Obj>::at(const qint32 &adr) {
 
    qint32 p;
    adr >= 0 ? p = adr%size_ : p = size_ - (-adr)%size_;
 
    return vector<T_Obj>::at(p);
}
Cette classe m'est super utile

Par contre je ne sais pas du tout comment surcharger iterator

Pour pouvoir faire quelque chose du genre

Code : Sélectionner tout - Visualiser dans une fenêtre à part
for(std::vector<float>::iterator it = Vector.begin(); it < Vector.end() + 8; ++it) {...}
Merci d'avance