stl sample

// accumulate()の使用例
#include < iostream>
#include < vector>
#include < numeric>
using namespace std;

int main()
{
  vector< int> v(5);
  int i, total;

  for(i=0; i<5; i++) v[i] = i;

  total = accumulate(v.begin(), v.end(), 0);

  cout << "Summation of v is: " << total;

  return 0;
}


// adjacent_difference()の使用例
#include < iostream>
#include < vector>
#include < numeric>
using namespace std;

int main()
{
  vector< int> v(10), r(10);
  int i;

  for(i=0; i<10; i++) v[i] = i*2;
  cout << "Original sequence: ";
  for(i=0; i<10; i++)
    cout << v[i] << " ";
  cout << endl;

  adjacent_difference(v.begin(), v.end(), r.begin());

  cout << "Resulting sequence: ";
  for(i=0; i<10; i++)
    cout << r[i] << " ";

  return 0;
}

// inner_product()の使用例
#include < iostream>
#include < vector>
#include < numeric>
using namespace std;

int main()
{
  vector< int> v1(5), v2(5);
  int i, total;

  for(i=0; i<5; i++) v1[i] = i;
  for(i=0; i<5; i++) v2[i] = i+2;

  total = inner_product(v1.begin(), v1.end(),
                        v2.begin(), 0);

  cout << "Inner product is: " << total;

  return 0;
}

// partial_sum()の使用例
#include < iostream>
#include < vector>
#include < numeric>
using namespace std;

int main()
{
  vector< int> v(5), r(5);
  int i;

  for(i=0; i<10; i++) v[i] = i;
  cout << "Original sequence: ";
  for(i=0; i<5; i++)
    cout << v[i] << " ";
  cout << endl;

  partial_sum(v.begin(), v.end(), r.begin());

  cout << "Resulting sequence: ";
  for(i=0; i<5; i++)
    cout << r[i] << " ";

  return 0;
}
1