STL中是否有dereference_iterator?

Luc*_*lle 15 c++ iterator stl

我想知道在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;
}
Run Code Online (Sandbox Code Playgroud)

Jam*_*kin 11

尝试Boost的indirect_iterator.

一个indirect_iterator具有相同的类别,因为它是包裹的迭代器.例如,a indirect_iterator<int**>是随机访问迭代器.