Source of is_sorted_until1a.cpp


  1: //is_sorted_until1a.cpp

  3: #include <iostream>
  4: #include <iomanip>
  5: #include <vector>
  6: #include <algorithm>
  7: using namespace std;

  9: int main()
 10: {
 11:     cout << "\nThis program illustrates the use of the STL "
 12:         "is_sorted_until() algorithm from\n<algorithm> to "
 13:         "find the first integer that destroys the sorting "
 14:         "order of a\nvector of integers into the (default) "
 15:         "ascending order.";
 16:     cout << "\nPress Enter to continue ... "; cin.ignore(80, '\n');

 18:     int a[] = {1, 2, 3, 4, 5};
 19:     int b[] = {1, 2, 3, 6, 5};
 20:     vector<int> va(a, a+5);
 21:     vector<int> vb(b, b+5);
 22:     cout << boolalpha;
 23:     auto firstUnsortedElementIter = is_sorted_until(va.begin(), va.end());
 24:     if (firstUnsortedElementIter == va.end()) 
 25:         cout << "For 1 2 3 4 5, the sequence is sorted "
 26:             "(in ascending order)." << endl;
 27:     else
 28:         cout << "For 1 2 3 4 5, the sequence sort was "
 29:         "destroyed at element " << *firstUnsortedElementIter << ".\n";

 31:     firstUnsortedElementIter = is_sorted_until(vb.begin(), vb.end());
 32:     if (firstUnsortedElementIter == vb.end()) 
 33:         cout << "For 1 2 3 6 5, the sequence is sorted "
 34:             "(in ascending order)." << endl;
 35:     else
 36:         cout << "For 1 2 3 6 5, the sequence sort was "
 37:         "destroyed at element " << *firstUnsortedElementIter << ".\n";
 38:     cout << "Press Enter to continue ... "; cin.ignore(80, '\n');
 39: }