1: //vector_d.cpp
3: #include <iostream>
4: #include <vector>
5: #include <algorithm>
6: #include <numeric>
7: using namespace std;
9: int main()
10: {
11: cout << "\nThis program illustrates the use of several "
12: "STL algorithms with vector objects."
13: "\nFrom <algorithm> we show max, min, max_element, "
14: "min_element, count, and sort."
15: "\nFrom <numeric> we show accumulate.";
16: cout << "\nPress Enter to continue ... "; cin.ignore(80, '\n');
18: int a[] = {1, 8, 2, 8, 12, 3, -1, 8, 4, 8, 5};
19: vector<int> v(a, a+sizeof(a)/sizeof(int));
21: cout << "\nHere are the values in the vector v:\n";
22: copy(v.begin(), v.end(), ostream_iterator<int>(cout, " "));
23: cout << "\nPress Enter to continue ... "; cin.ignore(80, '\n');
25: cout << "\nNow we compare the first and last values.";
26: cout << "\nMaximum of first and last values = "
27: << max(v.front(), v.back());
28: cout << "\nMinimum of first and last values = "
29: << min(v.front(), v.back()) << endl;
30: cout << "Press Enter to continue ... "; cin.ignore(80, '\n');
32: cout << "\nHere are the maximum and minimum values.";
33: cout << "\nMaximum value in the vector = "
34: << *max_element(v.begin(), v.end());
35: cout << "\nMinimum value in the vector = "
36: << *min_element(v.begin(), v.end());
37: cout << "\nPress Enter to continue ... "; cin.ignore(80, '\n');
39: cout << "\nHere is the number of times the value 8 appears: ";
40: cout << (int)count(v.begin(), v.end(), 8) << endl;
41: //Note that algorithm count returns a value of type size_t.
42: cout << "Press Enter to continue ... "; cin.ignore(80, '\n');
44: cout << "\nHere are the values sorted in ascending order:\n";
45: sort(v.begin(), v.end());
46: copy(v.begin(), v.end(), ostream_iterator<int>(cout, " "));
47: cout << "\nPress Enter to continue ... "; cin.ignore(80, '\n');
49: cout << "\nFinally, here is the sum of all the values: ";
50: cout << accumulate(v.begin(), v.end(), 0) << endl;
51: cout << "Press Enter to continue ... "; cin.ignore(80, '\n');
52: }