Listing 6

#include <array>
#include <iostream>
#include <algorithm>
#include <iterator>
using std::tr1::array;
using std::cout; using std::copy;
using std::ostream_iterator;

int main()
  { // demonstrate assign and swap
  const int size = 7;
  int carray[size];
  array<int, size> arr;
  for (int i = 0; i < size; ++i)
    carray[i] = 3;
  arr.assign(3);
  copy(carray, carray + size, ostream_iterator<int>(cout, " "));
  cout << '\n';
  copy(arr.begin(), arr.end(), ostream_iterator<int>(cout, " "));
  cout << "\n\n";
  array<int, size> arr1 = { 1, 1, 2, 3, 5 };
  copy(arr1.rbegin(), arr1.rend(), ostream_iterator<int>(cout, " "));
  cout << '\n';
  arr.swap(arr1);
  copy(arr1.begin(), arr1.end(), ostream_iterator<int>(cout, " "));
  cout << '\n';
  return 0;
  }