// from essential c++ chapter 3
#include <iostream>
#include <vector>
#include <algorithm>
#include <fstream>
using namespace std;
void display(const vector<int> &ivec, ostream &os = cout);
int main()
{
int arr[] = {1, 2, 3, 4};
size_t array_size = sizeof(arr) / sizeof(arr[0]);
vector<int> ivec(arr, arr + array_size);
display(ivec); // use default parameter
ofstream outfile("data.txt");
if (!outfile) {
cerr << "fail to open file!" << endl;
exit(-1);
}
display(ivec, outfile); // do not use default parameter
return 0;
}
void display(const vector<int> &ivec, ostream &os)
{
ostream_iterator<int> out_it(os, " ");
copy(ivec.begin(), ivec.end(), out_it);
}