我想知道在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;
}
Jam*_*kin 11
尝试Boost的indirect_iterator.
一个indirect_iterator具有相同的类别,因为它是包裹的迭代器.例如,a indirect_iterator<int**>是随机访问迭代器.