迭代器是静态指针吗?

use*_*484 1 c++ iterator

迭代器的一个简单用法是这样的:

vector<int> v;
vector<int>::iterator iter;

v.push_back(1);
v.push_back(2);
v.push_back(3);

for (iter = v.begin(); iter != v.end(); iter++)
  cout << (*iter) << endl;
Run Code Online (Sandbox Code Playgroud)

我有两个问题:

1)每当我们看到声明时,class-name::member-name它就是该类的静态成员.
那么,既然迭代器被声明为container<type>::iterator,我们可以认为它们是容器的静态成员吗​​?

2)由于迭代器使用相同的sintax指针解引用cout << (*iter) << endl;,我们可以认为它们也是指针吗?

谢谢

πάν*_*ῥεῖ 5

  1. 每次我们看到一个声明,就像class-name::member-name它是该类的静态成员一样.那么,既然迭代器被声明为container<type>::iterator,我们可以认为它们是容器的静态成员吗​​?

没有!您提到的上下文提供了带类的内部类型声明.这与static班级成员无关.

  1. 由于迭代器使用相同的sintax指针解引用cout << (*iter) << endl;,我们可以认为它们也是指针吗?

不,你不能认为iterator是指针.这只是迭代器特征指定的某些约束的可行实现的一种方式.