Bonjour,

Je cherche à savoir quelle est la meilleure manière de faire un itérateur qui serait limité à un certain interval de mon containeur, ceci afin que --(containeur.begin()) reste sur le premier élément de mon containeur et ne parte pas je ne sais où.

Il y a-t-il un moyen plus facile (que j'aurais loupé) autre que de créer une nouvelle classe ?

edit:

est-ce que quelque chose du genre est la manière la plus simple de procéder ?

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
template<class T>
class Slider {
private:
	T::iterator iterator;
	T* container;
public:
	Slider(const T& container) :
			iterator(container.begin()), container(&container) {
	}
 
	Slider<T>& operator++() {
		if (iterator != --container->end())
			++iterator;
 
		return *this;
	}
 
	Slider<T>& operator--() {
		if (iterator != container->begin())
			--iterator;
 
		return *this;
	}
};