Вмісту контейнера - студопедія

У файлі знаходиться довільну кількість цілих чисел. Вивести їх на екран у порядку зростання.

Iterator last) позиціями first і last

InputIter first, InputIter last) з позиції position

Void insert (iterator position, ітераторами first і last, починаючи

Значним value, починаючи з

Позицію, задану ітератором position

insert (iterator position, size_type n, const T value) Вставка n елементів з

template Вставка діапазону елементів, заданого

erase (iterator position) Видалення елемента, на який вказує

erase (iterator first. Видалення діапазону елементів, заданого

Програма зчитує числа в вектор, сортує по зростанню і виводить на екран:

using namespace std;

ifstream in ( "inpnum.txt");

В даному прикладі замість вектора можна було використовувати будь-який послідовний контейнер шляхом простої заміни слова vector на deque або list. При цьому змінилося б внутрішнє представлення даних, але результат роботи програми залишився б таким же.

Наведемо ще один приклад роботи з векторами, що демонструє використання методів swap (), empty (), back (), pop_back ():

using namespace std:

int n = sizeof (arr) / sizeof (double):

// Ініціалізація вектора масивом

vector v1 (arr, arr + n);

vector v2; // порожній вектор

vl.swap (v2); // обміняти вміст vl і v2

cout <

v2.pop_back (); // і видалити його

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

Шаблонна функція print () для виведення

В процесі роботи над програмами, які використовують контейнери, часто доводиться виводити на екран їх поточний зміст. Наведемо шаблон функції, що вирішує цю задачу для будь-якого типу (T) контейнера:

template void print (T cont)

typename T. const_iterator p = cont.begin ();

cout <<"Container is empty.";

Тепер можна користуватися функцією print (), включаючи її визначення в вихідний файл з програмою, як, наприклад, в наступному експерименті з чергою:

using namespace std;

deque dec; print (dec); // Container is empty

dec.push_front (3); print (dec); / / 3 4

dec.push_back (5); print (dec); / / 3 45

dec.push_front (2); print (dec); / / 2 3 4 5

dec.push_back (6); print (dec); / / 2 3 4 5 6

dec.push_front (1); print (dec); / / 1 2 3 4 5 6

На жаль, ініціалізація двосторонньої черги не поддержіваетсядіапазоном елементів контейнера іншого типу, тобто визначення: deque dec (v1.beg (), v1.end ()) не вірно.

Схожі статті