## Class template second_iterator

hamigaki::second_iterator —

`pair`の反復子を基に`second`のみを反復する

## Synopsis

    template<typename Iterator>
    class second_iterator {
    public:
      // types
      typedef /* see below */                                            value_type;
      typedef /* see below */                                            reference;
      typedef /* see below */                                            pointer;
      typedef implementation defined                                     difference_type;
      typedef typename std::iterator_traits<Iterator>::iterator_category iterator_category;

      // construct/copy/destruct
      second_iterator();
      second_iterator(const Iterator&);

      // operators
      reference operator*() const;
      second_iterator<Iterator>& operator++();

      // queries
      const Iterator& base() const;

      private: Iterator current;
    };

    // creation
    second_iterator<Iterator> make_second_iterator(Iterator);

## Description

first_iteratorの`second`版である。`value_type`、`reference`および`pointer`に関しては、first_iteratorを参照のこと。

### `second_iterator` construct/copy/destruct

1.     second_iterator();

   Effects: | `current = Iterator()`

2.     second_iterator(const Iterator& x);

   Effects: | `current = x`

### `second_iterator` operators

1.     reference operator*() const;

   Returns: | `current->second`

2.     second_iterator<Iterator>& operator++();

   Effects: | `++current`
   Returns: | `*this`

### `second_iterator` queries

1.     const Iterator& base() const;

   Returns: | `current`

### `second_iterator` creation

1.     second_iterator<Iterator> make_second_iterator(Iterator x);

   Returns: | `second_iterator<Iterator>(x)`

| 製作著作 © 2006, 2007 Takeshi Mouri