Je me demandais s'il y a un itérateur dans la STL qui déréférence l'objet pointé avant de le renvoyer. Cela pourrait être très utile lors de la manipulation de conteneurs agrégeant des pointeurs. Voici un exemple de ce que je voudrais être en mesure de le faire:Y a-t-il un dereference_iterator dans la STL?
#include <vector>
#include <iterator>
#include <algorithm>
using namespace std;
int main()
{
vector<int*> vec;
int i = 1;
int j = 2;
int k = 3;
vec.push_back(&i);
vec.push_back(&j);
vec.push_back(&k);
copy(deref_iterator(vec.begin()),
deref_iterator(vec.end()),
ostream_iterator<int>(cout, " ")); // prints "1 2 3"
return 0;
}
Exactement ce que je demandais. Honte à moi de ne pas penser à Boost :-)! Cependant, je me serais attendu à ce qu'un tel itérateur soit présent dans la bibliothèque standard ... –
Eh bien, le problème le plus difficile peut-il être résolu? Je veux trier le vecteur de ptrs ou le partitionner en appliquant des fonctions de. Le problème ici est que j'ai besoin d'échanger des pointeurs dans le conteneur alors que je déréférencer les valeurs de l'objet. –
0x2207