Шаг 20.
Библиотека STL.
Алгоритмы. Реверсирование последовательности

    На этом шаге мы рассмотрим алгоритм реверсирования последовательности.

    В данной программе используется алгоритм reverse(), который в диапазоне, заданном параметрами start и end, меняет порядок следования элементов на противоположный.

//---------------------------------------------------------------------------

#include <vcl.h>
#include <iostream>
#include <vector>
#include <algorithm>
#include <conio.h> //необходимо для getch()
#pragma hdrstop

//---------------------------------------------------------------------------

#pragma argsused
using namespace std;

std::string ToRus(const std::string &in)
{
  char *buff = new char [in.length()+1];
  CharToOem(in.c_str(),buff);
  std::string out(buff);
  delete [] buff;
  return out;
}


int main(int argc, char* argv[])
{
  vector<int> v;
  unsigned int i;

  for(i=0; i<10; i++) v.push_back(i);

  cout << ToRus("Исходная последовательность: ");
  for(i=0; i<v.size(); i++) cout << v[i] << " ";
  cout << endl;

  reverse(v.begin(), v.end());

  cout << ToRus("Реверсированная последовательность: ");
  for(i=0; i<v.size(); i++) cout << v[i] << " ";

  getch();
  return 0;
}
//---------------------------------------------------------------------------
Текст этого примера можно взять здесь.

    Результаты выполнения этой программы представлены на рисунке 1.


Рис.1. Результат работы приложения

    На следующем шаге мы рассмотрим алгоритм преобразования последовательности.




Предыдущий шаг Содержание Следующий шаг