比较C++中的迭代器

Tea*_*ter 1 c++ iterator

我在比较C++中的迭代器时很困惑.使用以下代码:

std::iterator< std::forward_iterator_tag, CP_FileSystemSpec> Iter1;
std::iterator< std::forward_iterator_tag, CP_FileSystemSpec> Iter2;

while( ++Iter1 != Iter2 )
{

}
Run Code Online (Sandbox Code Playgroud)

错误是:

error: no match for 'operator++' in '++Iter1'
Run Code Online (Sandbox Code Playgroud)

我似乎记得你无法做上面代码所做的事情.但我不知道如何进行比较.

Bo *_*son 6

std::iterator 它本身不是一个迭代器,但是其他迭代器可以继承的基类来获得一些标准的typedef.

template<class Category, class T, class Distance = ptrdiff_t, class Pointer = T*, class Reference = T&> 
struct iterator 
{ 
    typedef T value_type; 
    typedef Distance difference_type; 
    typedef Pointer pointer; 
    typedef Reference reference; 
    typedef Category iterator_category; 
};
Run Code Online (Sandbox Code Playgroud)