我在比较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)
我似乎记得你无法做上面代码所做的事情.但我不知道如何进行比较.
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)
| 归档时间: |
|
| 查看次数: |
1214 次 |
| 最近记录: |