Присваивание. Присваивание сгенерированных значений

   
На этом шаге мы рассмотрим алгоритмы, используемые для генерации значений.

   
Для присваивания сгенерированных значений можно воспользоваться следующими алгоритмами:

  void
  generate (ForwardIterator beg, ForwardIterator end, 
            Func op)
  void
  generate_n (OutputIterator beg, Size num, 
              Func op)

   
Алгоритм generate() присваивает значения, сгенерированные вызовом ор() для каждого элемента в интервале [beg,end).

   
Алгоритм generate_n() присваивает значения, сгенерированные вызовом оp() для первых num элементов в
интервале [beg,...).

   
Перед вызовом необходимо убедиться в том, что приемный интервал имеет достаточный размер, или использовать итераторы вставки.

   
Сложность линейная (numberOfElements или num вызовов ор() и присваиваний).

   
В следующей программе алгоритмы generate() и generate_n() используются для вставки и присваивания случайных значений:

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

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

  // Получение пяти случайных чисел
  generate_n (back_inserter(coll),      // Начало приемного интервала
              5,                        // Счетчик
              rand);                    // Генератор значений
  PRINT_ELEMENTS(coll,"Пять случайных чисел:\n");

  // Замена пятью новыми случайными числами
  generate (coll.begin(), coll.end(),   // Приемный интервал
            rand);                      // Генератор значений
  PRINT_ELEMENTS(coll,"Заменили следующими случайными числами:\n");


  getch();
  return 0;
}

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

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

   
Со следующего шага мы начнем рассматривать алгоритмы замены элементов.



Вы можете оставить комментарий, или Трекбэк с вашего сайта.

Оставить комментарий