Примеры работы с vector

Материал из Вики ИТ мехмата ЮФУ
Перейти к: навигация, поиск
// vector: (шаблон класса динамического массива)
#include <vector>

//rand, srand:
#include <cstdlib>

//time:
#include <ctime>

// cout, endl
#include <iostream>

using std::vector;
using std::rand;
using std::srand;
using std::time;

// случайное целое в диапазоне [0, n)
int random(int n)
{
    return rand() / (double) RAND_MAX * n;
}

// вектор размера size из случайных целых по модулю не больше max
vector<int> random_vector(int size, int max = 10)
{
    vector<int> v;
    for (int i = 0; i < size; ++i)
    {
        int sign = random(2) ? -1 : 1;
        int x = random(max);
        v.push_back(sign * x); // добавляем в вектор очередное число
    }
    return v;
}

// печать вектора: обратите внимание на передачу по ссылке на константу
template <typename Vec> // шаблон функции: печатает вектор любого типа
void print_vector(Vec const & v)
{
    for (int i = 0; i < v.size(); ++i)
    {
        std::cout << v[i] << std::endl;
    }
}

int main()
{
    srand(time(0));
    vector<int> v = random_vector(5);
    print_vector(v);
}