Форум программистов, компьютерный форум CyberForum.ru

generate () - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Движение в текстовом файле http://www.cyberforum.ru/cpp-beginners/thread313496.html
Мне нужно двигаться и считывать в строку символы до определенного символа, означающего конец строки(той в которую я записываю символы). Потом точно также, но с другими символами и строками.
C++ Преобразовать программу с массивом в двусвязный список Собственно необходимо решить данную задачу с помощью двусвязаного списка( полностью ну или просто дописать) Описать структуру NOTE, содержащую следующие поля: NAME - фамилия, имя; PHONE - номер телефона; BDAY - день рождения (массив из трех чисел); Написать программу, выполняющую следующие действия: Создать массив blocknote, состоящий из 5 структур типа NOTE; записи должны быть... http://www.cyberforum.ru/cpp-beginners/thread313486.html
разработать класс прямоугольник C++
разработать класс прямоугольник. определить конструктор и деструктор. реализовать объявленные методы(3 метода) доступа к данным. Вот! задачу довел до этого... но выдает ошибки, незнаю как исправить(( #include <iostream> #include <string> class Rectange //объявление класса Rectange
C++ Работа на 2х сторонний список
Делаю курсач по программированию. Курсач состоит из меню с вопросами. Один из пунктов " Алфавитный список". В нем у меня список марок машин и кол-во л.сил сколько приходится на ту или инную машину. Пример" Хендаи 122 Ауди 220 и т.д. А препод попросил сделать 2х сторонний список. Т.е. к примеру Машинный список располагается по алфавиту,а при нажатии должен от обратного стороиться. " От А...
C++ Нахождение корней итерационным методом http://www.cyberforum.ru/cpp-beginners/thread313439.html
Нужно создать приложение для нахождения корней алгебраического уравнения n-й степени итерационным методом. Как это можно сделать? и какие формулы использовать?
C++ Количество нулей в записи числа Помогите пожалуйста написать эдакое... Дано натуральное число n. Подсчитать количество нулей в записи данного числа в десятичной системе счисления. На С# написал примерно, а на С++ немогу... Вот код на с#, мож кто сможет переделать в с++? using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using... подробнее

Показать сообщение отдельно
Nameless One
Эксперт С++
5769 / 3418 / 255
Регистрация: 08.02.2010
Сообщений: 7,444
05.06.2011, 16:34     generate ()
Немного непонятно, нужны ли тебе последовательные либо случайные значения. Написал и так, и так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
#include <algorithm>
#include <vector>
#include <iostream>
#include <iterator>
#include <cstdlib>
#include <ctime>
 
struct random_gen
{
    const int l_t, r_t;
    random_gen(int l, int r);
    int operator () ();
};
 
struct successive_gen
{
    int current;
    successive_gen(int c = 0);
    int operator() ();
};
    
int main()
{
    srand(static_cast<size_t>(time(NULL)));
 
    const int l_t = 0;
    const int r_t = 3;
    const size_t cnt = 4;
    
    std::vector<int> random(cnt);
    std::vector<int> successive(cnt);
 
    std::generate(random.begin(), random.end(), random_gen(l_t, r_t));
    std::generate(successive.begin(), successive.end(), successive_gen(l_t));
 
    // Вывод вектора случайных значений
    std::cout << cnt << " random values in range [" << l_t << ";" << r_t << "]: ";
    std::copy(random.begin(), random.end(), std::ostream_iterator<int>(std::cout, " "));
    std::cout << std::endl;
 
    // Вывод последовательных значений
    std::cout << cnt << " successive values starting from " << l_t << ": ";
    std::copy(successive.begin(),
          successive.end(),
          std::ostream_iterator<int>(std::cout, " "));
    std::cout << std::endl;
    
    return 0;
}
 
random_gen::random_gen(int l, int r)
    : l_t(l), r_t(r)
{
}
 
int random_gen::operator() ()
{
    return rand() % (r_t - l_t + 1) + l_t;
}
 
successive_gen::successive_gen(int c)
    : current(c)
{
}
 
int successive_gen::operator() ()
{
    return current++;
}
Еще можно через лямбды сделать

Хе, опоздал...
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru