1: //partition_point1a.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 " 11: "partition_point() algorithm from\n<algorithm> to determine " 12: "the point at which a vector of integers is partitioned\ninto " 13: "odd and even integers."; 14: cout << "\nPress Enter to continue ... "; cin.ignore(80, '\n'); 16: int a[] = {1, 3, 5, 7, 9, 2, 4, 6}; 17: int b[] = {2, 4, 6, 1, 3, 5, 7, 9}; 18: int c[] = {1, 3, 5, 7, 9, 11, 13, 15}; 19: int d[] = {2, 4, 6, 8, 10, 12, 14, 16}; 20: vector<int> va(a, a+8); 21: vector<int> vb(b, b+8); 22: vector<int> vc(c, c+8); 23: vector<int> vd(d, d+8); 25: auto partitionPointIter = partition_point(va.begin(), va.end(), 26: [](int n) {return n%2==1;}); 27: if (partitionPointIter == va.end()) 28: cout << "\nNo even values found."; 29: else 30: cout << "\nFirst even value found is " << *partitionPointIter << "."; 32: partitionPointIter = partition_point(vb.begin(), vb.end(), 33: [](int n) {return n%2==1;}); 34: if (partitionPointIter == vb.end()) 35: cout << "\nNo even values found."; 36: else 37: cout << "\nFirst even value found is " << *partitionPointIter << "."; 39: partitionPointIter = partition_point(vc.begin(), vc.end(), 40: [](int n) {return n%2==1;}); 41: if (partitionPointIter == vc.end()) 42: cout << "\nNo even values found."; 43: else 44: cout << "\nFirst even value found is " << *partitionPointIter << "."; 46: partitionPointIter = partition_point(vd.begin(), vd.end(), 47: [](int n) {return n%2==1;}); 48: if (partitionPointIter == vd.end()) 49: cout << "\nNo even values found."; 50: else 51: cout << "\nFirst even value found is " << *partitionPointIter << "."; 52: cout << "\nPress Enter to continue ... "; cin.ignore(80, '\n'); 53: }