1: //copy1a.cpp
3: #include <iostream>
4: #include <vector>
5: #include <algorithm>
6: using namespace std;
8: int main()
9: {
10: cout << "\nThis program illustrates the use of the STL copy() "
11: "algorithm to copy integers\nfrom one vector to another.";
12: cout << "\nPress Enter to continue ... "; cin.ignore(80, '\n');
14: int odds[] = {1, 3, 5, 7, 9};
15: vector<int> v1(odds, odds+5);
16: cout << "\nHere are the contents of v1:\n";
17: for (vector<int>::size_type i=0; i<v1.size(); i++)
18: cout << v1.at(i) << " ";
19: cout << "\nPress Enter to continue ... "; cin.ignore(80, '\n');
21: //The destination of a copy must be large enough
22: //to receive the copied values:
23: vector<int> v2(5);
24: cout << "\nHere are the contents of v2:\n";
25: for (vector<int>::size_type i=0; i<v2.size(); i++)
26: cout << v2.at(i) << " ";
27: cout << "\nPress Enter to continue ... "; cin.ignore(80, '\n');
29: copy(v1.begin(), v1.end(), v2.begin());
30: cout << "\nNow we copy the values from v1 to v2 and re-"
31: "display v2.\nHere are the new contents of v2:\n";
32: for (vector<int>::size_type i=0; i<v2.size(); i++)
33: cout << v2.at(i) << " ";
34: cout << "\nPress Enter to continue ... "; cin.ignore(80, '\n');
36: int a[] = {10, 20, 30, 40, 50, 60, 70, 80, 90, 100};
37: vector<int> v3(a, a+10);
38: cout << "\nHere are the contents of v3:\n";
39: for (vector<int>::size_type i=0; i<v3.size(); i++)
40: cout << v3.at(i) << " ";
41: cout << "\nPress Enter to continue ... "; cin.ignore(80, '\n');
43: cout << "\nNow we copy all but the end values from v2 into "
44: "v3,\nstarting at position 5 in v3, and then re-display v3.";
45: cout << "\nPress Enter to continue ... "; cin.ignore(80, '\n');
47: vector<int>::iterator p;
48: p = copy(v2.begin()+1, v2.end()-1, v3.begin()+4);
49: cout << "\nHere are the new contents of v3:\n";
50: for (vector<int>::size_type i=0; i<v3.size(); i++)
51: cout << v3.at(i) << " ";
52: cout << "\nPress Enter to continue ... "; cin.ignore(80, '\n');
54: cout << "\nThis time we also recorded the iterator returned by "
55: "\nthe copy algorithm and now display the value it points to.";
56: cout << "\nPress Enter to continue ... "; cin.ignore(80, '\n');
58: cout << "\nThe value pointed to by this iterator is " << *p << ".";
59: cout << "\nPress Enter to continue ... "; cin.ignore(80, '\n');
60: }