Мне было интересно, есть ли в 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;
}