Шаг 325.
Библиотека STL. Численные алгоритмы. Пример преобразования относительных значений в абсолютные

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

    Следующий пример показывает, как при помощи алгоритмов partial_sum() и adjacent_difference() преобразовать серию относительных значений в серию абсолютных значений и наоборот:

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

#include <vcl.h>
#include <iterator>
#include "algostuff.hpp"

#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()
{
  vector<int> coll;

  coll.push_back(17);
  coll.push_back(-3);
  coll.push_back(22);
  coll.push_back(13);
  coll.push_back(13);
  coll.push_back(-9);
  PRINT_ELEMENTS(coll,"Исходная коллекция:\n");

  // Преобразование к относительным значениям
  adjacent_difference (coll.begin(), coll.end(),   // Источник
                       coll.begin());              // Приемник
  PRINT_ELEMENTS(coll,"Относительные значения:\n");
     
  // Преобразование к абсолютным значениям
  partial_sum (coll.begin(), coll.end(),           // Источник
               coll.begin());                      // Приемник
  PRINT_ELEMENTS(coll,"Абсолютные значения:\n");


  getch();
  return 0;
}

//---------------------------------------------------------------------------
Текст этого примера можно взять здесь.

    Результат выполнения программы выглядит так:


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

    Со следующего шага мы будем рассматривать специальные контейнеры.




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