Skip to content

Latest commit

 

History

History
57 lines (45 loc) · 1.11 KB

iter_swap.md

File metadata and controls

57 lines (45 loc) · 1.11 KB

#iter_swap

namespace std {
  template <class ForwardIterator1, class ForwardIterator2>
  void iter_swap(ForwardIterator1 a, ForwardIterator2 b);
}

###概要 2つのイテレータの要素を swap する。

###効果 swap(*a, *b)

###要件 abDereferenceable でなければならない。 *a*bSwappable でなければならない。

###実装例

template <class ForwardIterator1, class ForwardIterator2>
void iter_swap(ForwardIterator1 a, ForwardIterator2 b) {
  swap(*a, *b);
}

###使用例

#include <algorithm>
#include <iostream>
#include <vector>
#include <iterator>

int main() {
  std::vector<int> v1 = { 3,1,4 };
  std::vector<int> v2 = { 4,2,5 };

  std::iter_swap(v1.begin()+1, v2.begin()+2);

  std::cout << "v1: ";
  std::copy(v1.begin(), v1.end(), std::ostream_iterator<int>(std::cout, ","));
  std::cout << std::endl;

  std::cout << "v2: ";
  std::copy(v2.begin(), v2.end(), std::ostream_iterator<int>(std::cout, ","));
  std::cout << std::endl;
}
  • iter_swap[color ff0000]

###出力

v1: 3,5,4,
v2: 4,2,1,