1: //is_sorted_until2a.cpp 3: #include <iostream> 4: #include <iomanip> 5: #include <vector> 6: #include <algorithm> 7: #include <functional> 8: using namespace std; 10: int main() 11: { 12: cout << "\nThis program illustrates the use of the STL " 13: "is_sorted_until() algorithm from\n<algorithm> to " 14: "find the first integer that destroys the sorting " 15: "order of a\nvector of integers into descending order."; 16: cout << "\nPress Enter to continue ... "; cin.ignore(80, '\n'); 18: int a[] = {5, 4, 3, 2, 1}; 19: int b[] = {5, 4, 3, 0, 1}; 20: vector<int> va(a, a+5); 21: vector<int> vb(b, b+5); 22: cout << boolalpha; 23: auto firstUnsortedElementIter = 24: is_sorted_until(va.begin(), va.end(), greater<int>()); 25: if (firstUnsortedElementIter == va.end()) 26: cout << "For 5 4 3 2 1, the sequence is sorted " 27: "in descending order." << endl; 28: else 29: cout << "For 5 4 3 2 1, the sequence sort was " 30: "destroyed at element " << *firstUnsortedElementIter << ".\n"; 32: firstUnsortedElementIter = 33: is_sorted_until(vb.begin(), vb.end(), greater<int>()); 34: if (firstUnsortedElementIter == vb.end()) 35: cout << "For 5 4 3 0 1, the sequence is sorted " 36: "(in descending order)." << endl; 37: else 38: cout << "For 5 4 3 0 1, the sequence sort was " 39: "destroyed at element " << *firstUnsortedElementIter << ".\n"; 40: cout << "Press Enter to continue ... "; cin.ignore(80, '\n'); 41: }