37 lines
1.1 KiB
C++
37 lines
1.1 KiB
C++
// inserts.cpp -- copy() and insert iterators
|
|
#include <iostream>
|
|
#include <string>
|
|
#include <iterator>
|
|
#include <vector>
|
|
#include <algorithm>
|
|
|
|
void output(const std::string & s) {std::cout << s << " ";};
|
|
void outc(char ch) {std::cout << ch; }
|
|
void routput(const std::string & s) {std::for_each(s.rbegin(),s.rend(),outc); std::cout << " ";}
|
|
|
|
int main()
|
|
{
|
|
using namespace std;
|
|
string s1[4] = {"fine", "fish", "fashion", "fate"};
|
|
string s2[2] = {"busy", "bats"};
|
|
string s3[2] = {"silly", "singers"};
|
|
vector<string> words(4);
|
|
copy(s1, s1 + 4, words.begin());
|
|
for_each(words.begin(), words.end(), output);
|
|
cout << endl;
|
|
|
|
// construct anonymous back_insert_iterator object
|
|
copy(s2, s2 + 2, back_insert_iterator<vector<string> >(words));
|
|
for_each(words.begin(), words.end(), output);
|
|
cout << endl;
|
|
|
|
// construct anonymous insert_iterator object
|
|
copy(s3, s3 + 2, insert_iterator<vector<string> >(words, words.begin()));
|
|
for_each(words.begin(), words.end(), output);
|
|
cout << endl;
|
|
for_each(words.begin(), words.end(), routput);
|
|
cout << endl;
|
|
// cin.get();
|
|
return 0;
|
|
}
|