【发布时间】:2017-04-04 04:05:57
【问题描述】:
迭代器的一个简单用法是这样的:
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;
我有两个问题:
1) 每次我们看到像 class-name::member-name 这样的声明时,它都是该类的静态成员。
那么,既然迭代器被声明为container<type>::iterator,我们可以认为它们是容器的静态成员吗?
2) 既然迭代器是用相同的指针cout << (*iter) << endl; 的sintax 解引用的,我们可以认为它们也是指针吗?
谢谢
【问题讨论】:
-
v.std::vector<int>::push_back(1);、v.vector<int>::push_back(1);或v.vector::push_back(1);有效也会反驳您的第一个断言。 -
“静态”对类型成员没有意义。
-
class-name::member-name可以引用嵌套类型,这就是vector<int>::iterator的情况。如果vector<int>::iterator是静态数据成员,vector<int>::iterator iter;就没有任何意义。