Reverse the order of the found element with value 3 and all following elements : reverse « STL Algorithms Modifying sequence operations « C++






Reverse the order of the found element with value 3 and all following elements

  
 

/* The following code example is taken from the book
 * "The C++ Standard Library - A Tutorial and Reference"
 * by Nicolai M. Josuttis, Addison-Wesley, 1999
 *
 * (C) Copyright Nicolai M. Josuttis 1999.
 * Permission to copy, use, modify, sell and distribute this software
 * is granted provided this copyright notice appears in all copies.
 * This software is provided "as is" without express or implied
 * warranty, and with no claim as to its suitability for any purpose.
 */
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;

int main()
{
    vector<int> coll;
    vector<int>::iterator pos;

    // insert elements from 1 to 6 in arbitrary order
    coll.push_back(2);
    coll.push_back(5);
    coll.push_back(4);
    coll.push_back(1);
    coll.push_back(6);
    coll.push_back(3);

    // find the first element with value 3
    pos = find (coll.begin(), coll.end(),  // range
                3);                        // value
    // reverse the order of the found element with value 3 and all following elements
    reverse (pos, coll.end());

    // print all elements
    for (pos=coll.begin(); pos!=coll.end(); ++pos) {
        cout << *pos << ' ';
    }
    cout << endl;

}

/* 
2 5 4 1 6 3

 */        
    
  








Related examples in the same category

1.Use reverse to reverse the order of elements
2.Use reverse to reverse order from second to last element but one
3.Using the STL generic reverse algorithm with a vector
4.Reverse a sequence
5.Sort and reverse an int array