#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;}