#include < iterator >
#include < numeric >
#include < deque >
#include < iostream >
using std::deque;
using std::cout;
using std::ostream_iterator;
using std::endl;
int main ()
{
//
// Initialize a vector using an array.
//
int arr[4] = { 3,4,7,8 };
int total=0;
deque<int> d(arr+0, arr+4);
//
// stream the whole vector and a sum to cout
//
copy(d.begin(),d.end()-1,ostream_iterator<int>(cout,"+"));
cout << *(d.end()-1) << " = " <<
accumulate(d.begin(),d.end(),total) << endl;
return 0;
}
#include < iterator >
#include < numeric >
#include < deque >
#include < iostream >
#include < fstream >
using std::deque;
using std::cout;
using std::ostream_iterator;
using std::endl;
using std::ofstream;
int main ()
{
//
// Initialize a vector using an array.
//
int arr[4] = { 3,4,7,8 };
int total=0;
deque<int> d(arr+0, arr+4);
//
// stream the whole vector and a sum to cout
//
ofstream outfile("test.txt");
copy(d.begin(),d.end()-1,ostream_iterator<int>(outfile,"+"));
outfile << *(d.end()-1) << " = " <<
accumulate(d.begin(),d.end(),total) << endl;
return 0;
}
#include < iostream >
#include < algorithm >
#include < vector >
#include < string >
#include < iterator >
using namespace std;
int main ()
{
// first way
cout << "Enter sequance of integers "
<< "(d - quit) : ";
istream_iterator<int> start_cin(cin);
istream_iterator<int> end_of_cin;
vector<int> v;
copy(start_cin,end_of_cin,back_inserter(v));
for ( vector<int>::iterator It = v.begin();It != v.end(); It++ )
cout << *It << " - ";
cout << endl;
// second way
vector<string> vS;
cout << "Enter three strings : ";
for ( int i = 0; i < 3; i++ )
vS.push_back(*istream_iterator<string>(cin));
ostream_iterator<string> sIt(cout,", ");
copy(vS.begin(),vS.end(),sIt);
cout << endl;
return 0;
}
// ostream_iterator_op_assign.cpp
// compile with: /EHsc
#include < iterator >
#include < vector >
#include < iostream >
int main( )
{
using namespace std;
// ostream_iterator for stream cout
// with new line delimiter
ostream_iterator<int> intOut ( cout , " " );
// Standard iterator interface for writing
// elements to the output stream
cout << "Elements written to output stream:" << endl;
*intOut = 10;
intOut++; // No effect on iterator position
*intOut = 20;
*intOut = 30;
return 0;
}
#include < iostream >
#include < vector >
#include < algorithm >
#include < iterator >
using namespace std;
int main()
{
// create ostream iterator for stream cout
// - values are separated by a newline character
ostream_iterator<int> intWriter(cout," ");
// write elements with the usual iterator interface
*intWriter = 42;
intWriter++;
*intWriter = 77;
intWriter++;
*intWriter = -5;
// create collection with elements from 1 to 9
vector<int> coll;
for (int i=1; i<=9; ++i) {
coll.push_back(i);
}
// write all elements without any delimiter
copy (coll.begin(), coll.end(),
ostream_iterator<int>(cout));
cout << endl;
// write all elements with " < " as delimiter
copy (coll.begin(), coll.end(),
ostream_iterator<int>(cout," < "));
cout << endl;
return 0;
}
#include < iostream >
#include < list >
#include < fstream >
#include < algorithm >
#include < iterator >
using namespace std;
int main ()
{
list<int> i;
ifstream f("test.txt");
// read data from file
istream_iterator<int> file_iter(f);
istream_iterator<int> end_of_stream;
f.close();
copy (file_iter, end_of_stream, back_inserter(i));
cout << endl;
ostream_iterator<int> ositer(cout, " - ");
copy (i.begin(), i.end(), ositer);
cout << endl;
return 0;
}
#include < iostream >
#include < vector >
#include < algorithm >
#include < fstream >
#include < iterator >
using namespace std;
int main ()
{
int ary[] = {2,5,7,2,8,9};
ofstream ofile("test.txt");
// write to STDOUT
copy(ary,ary+6,ostream_iterator<int>(cout," - "));
// write into file "TEST.DAT"
copy(ary,ary+6,ostream_iterator<int>(ofile," "));
ofile.close();
cout << endl;
ifstream ifile("test.txt");
istream_iterator<int> start_file(ifile);
istream_iterator<int> end_file;
// read from file and write to STDOUT
copy(start_file,end_file,
ostream_iterator<int>(cout," * "));
ifile.close();
cout << endl;
return 0;
}
#include < iostream >
#include < set >
#include < algorithm >
#include < iterator >
using namespace std;
int main()
{
int a[] = {1, 3, 5, 7, 9, 10};
int b[] = {1, 2, 3, 4, 5, 6};
set<int> result;
merge(a, a+6, b, b+6,
inserter(result, result.begin()));
copy(result.begin(), result.end(),
ostream_iterator<int>(cout, " "));
cout << endl;
return 0;
}
#include < iostream >
#include < list >
#include < algorithm >
#include < iterator >
using namespace std;
int main()
{
list<int> L;
L.push_front(3);
insert_iterator<list<int> > iL(L,L.begin());
*iL++ = 0;
*iL++ = 1;
*iL++ = 2;
copy(L.begin(), L.end(),
ostream_iterator<int>(cout, " "));
return 0;
}
#include < iterator >
#include < vector >
#include < iostream >
using namespace std;
int main()
{
//Initialize a vector using an array
int arr[4] = {3,4,7,8};
vector<int> v(arr,arr+4);
//Output the original vector
cout << "Start with a vector: " << endl << " ";
copy(v.begin(),v.end(),
ostream_iterator<int,char>(cout," "));
//Insert into the middle
insert_iterator<vector<int> > ins(v, v.begin()+2);
*ins = 5;
*ins = 6;
//Output the new vector
cout << endl << endl;
cout << "Use an insert_iterator: " << endl << " ";
copy(v.begin(),v.end(),
ostream_iterator<int,char>(cout," "));
return 0;
}
#include < iterator >
#include < deque >
#include < iostream >
using namespace std;
int main ()
{
//
// Initialize a deque using an array.
//
int arr[4] = { 3,4,7,8 };
deque<int> d(arr+0, arr+4);
//
// Output the original deque.
//
cout << "Start with a deque: " << endl << " ";
copy(d.begin(), d.end(), ostream_iterator<int>(cout," "));
//
// Insert into the middle.
//
insert_iterator<deque<int> > ins(d, d.begin()+2);
*ins = 5; *ins = 6;
//
// Output the new deque.
//
cout << endl << endl;
cout << "Use an insert_iterator: " << endl << " ";
copy(d.begin(), d.end(), ostream_iterator<int>(cout," "));
//
// A deque of four 1s.
//
deque<int> d2(4, 1); //4 instants of 1
//
// Insert d2 at front of d.
//
copy(d2.begin(), d2.end(), front_inserter(d));
//
// Output the new deque.
//
cout << endl << endl;
cout << "Use a front_inserter: " << endl << " ";
copy(d.begin(), d.end(), ostream_iterator<int>(cout," "));
//
// Insert d2 at back of d.
//
copy(d2.begin(), d2.end(), back_inserter(d));
//
// Output the new deque.
//
cout << endl << endl;
cout << "Use a back_inserter: " << endl << " ";
copy(d.begin(), d.end(), ostream_iterator<int>(cout," "));
cout << endl;
return 0;
}
#include < iostream >
#include < deque >
#include < algorithm >
#include < iterator >
using namespace std;
int main()
{
deque<int> d;
front_inserter(d) = 100;
front_inserter(d) = 200;
copy(d.begin(),d.end(),
ostream_iterator<int>(cout," "));
cout << endl;
// use front inserter to insert all elements again
copy (d.begin(), d.end(), // source
front_inserter(d)); // destination
copy(d.begin(),d.end(),
ostream_iterator<int>(cout," "));
cout << endl;
return 0;
}