vector <int>::iterator itr1;
我如何解释这一行?
itr1
是类iterator
的对象,很明显,但是前缀vector <int>::
呢?
答案 0 :(得分:2)
::
运算符是Scope Resolution Operator。
...前缀“ vector ::”呢?
在vector<int>::iterator itr1;
的上下文中, ::
的前缀是iterator
属于member typedef 的类。在declaration of class template std::vector
内部,看起来像这样:
template <class T, class Allocator = allocator<T> >
class vector {
public:
// types:
...
typedef ... iterator;
...
};
因此,
...
的对象itr1
是类iterator
[...]
将是不正确的。 itr1
的类别为std::vector<int>::iterator
。只是std::iterator
is a different class,不一定与您的代码段无关,因为它可能是std::vector<int>::iterator
的基础,但绝对不是同一类。