2015-10-15 65 views
1

我正在尋找一個迭代器的例子,它滿足有限的質量被認爲是一個ForwardIterator,而不是迭代器層次結構中的任何其他東西。什麼是C++ forwarditerator的例子?

我寫了一個程序,打印一個迭代器符合的五個迭代器類別中的哪一個。我已經測試了其他四個迭代器類別。

+0

一個前向迭代器將是一個單向鏈表的迭代器 – NathanOliver

回答

4

一個典型的例子是std::forward_list<T>::iterator。測試片段:

#include <iostream> 
#include <iterator> 
#include <forward_list> 
#include <vector> 

template<typename T> 
bool test = std::is_same < 
       typename std::iterator_traits < 
        typename T::iterator 
       >::iterator_category, 
       std::forward_iterator_tag 
      >::value ; 

int main() 
{ 
    // test wheter std::forward_list's iterator is a forward_iterator 
    std::cout << std::boolalpha << test<std::forward_list<int>> << std::endl; 
    // what about std::vector? 
    std::cout << std::boolalpha << test<std::vector<int>>; 
} 

Live on Coliru