simplegenerators.h

来自「Think in C++ 2nd」· C头文件 代码 · 共 39 行

H
39
字号
//: C20:SimpleGenerators.h

// From Thinking in C++, 2nd Edition

// Available at http://www.BruceEckel.com

// (c) Bruce Eckel 1999

// Copyright notice in Copyright.txt

// Generic generators, including

// one that creates pairs

#include <iostream>

#include <utility>



// A generator that increments its value:

template<typename T>

class IncrGen {

  T i;

public:

  IncrGen(T ii) : i (ii) {}

  T operator()() { return i++; }

};



// A generator that produces an STL pair<>:

template<typename T1, typename T2>

class PairGen {

  T1 i;

  T2 j;

public:

  PairGen(T1 ii, T2 jj) : i(ii), j(jj) {}

  std::pair<T1,T2> operator()() { 

    return std::pair<T1,T2>(i++, j++); 

  }

};



// A generic global operator<< 

// for printing any STL pair<>:

template<typename Pair> std::ostream&

operator<<(std::ostream& os, const Pair& p) {

  return os << p.first << "\t" 

    << p.second << std::endl;

} ///:~

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?