目录

iterator

描述 (Description)

它是一个迭代器基类。

声明 (Declaration)

以下是std :: iterator的声明。

C++11

template <class Category,              
          class T,                     
          class Distance = ptrdiff_t,  
          class Pointer = T*,          
          class Reference = T&> 
		  class iterator;

参数 (Parameters)

  • T - 表示元素的类型。

  • Distance - 它表示两个迭代器之间的差异。

  • Pointer - 它表示指向迭代器指向的元素的指针。

  • Reference - 它表示对迭代器指向的元素的引用。

返回值

没有

异常 (Exceptions)

如果x在应用一元运算符时以某种方式抛出它,则此函数永远不会抛出异常。

时间复杂

随机访问迭代器的常量。

例子 (Example)

以下示例显示了std :: iterator的用法。

#include <iostream>     
#include <iterator>     
class MyIterator : public std::iterator<std::input_iterator_tag, int> {
   int* p;
public:
   MyIterator(int* x) :p(x) {}
   MyIterator(const MyIterator& mit) : p(mit.p) {}
   MyIterator& operator++() {++p;return *this;}
   MyIterator operator++(int) {MyIterator tmp(*this); operator++(); return tmp;}
   bool operator==(const MyIterator& rhs) {return p==rhs.p;}
   bool operator!=(const MyIterator& rhs) {return p!=rhs.p;}
   int& operator*() {return *p;}
};
int main () {
   int numbers[] = {1,2,3,4,5};
   MyIterator from(numbers);
   MyIterator until(numbers+5);
   for (MyIterator it = from; it!=until; it++)
      std::cout << *it << ' ';
   std::cout << '\n';
  return 0;
}

让我们编译并运行上面的程序,这将产生以下结果 -

1 2 3 4 5
↑回到顶部↑
WIKI教程 @2018