Me preguntaba si hay un iterador en el STL que desreferencia el objeto apuntado antes de devolverlo. Esto podría ser muy útil al manipular contenedores que agregan punteros. He aquí un ejemplo de lo que me gustaría ser capaz de hacer:¿Hay un dereference_iterator en el 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;
}
Exactamente lo que estaba pidiendo. Lástima de mí por no pensar en Boost :-)! Sin embargo, esperaba que ese iterador estuviera presente en la biblioteca estándar ... –
Bueno, ¿se puede resolver un problema más difícil? Quiero ordenar el vector de ptrs o particionarlo aplicando funciones desde. El problema aquí es que necesito intercambiar punteros en un contenedor, mientras que la desreferencia a los valores del objeto. –
0x2207