русс | укр

Мови програмуванняВідео уроки php mysqlПаскальСіАсемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование


Linux Unix Алгоритмічні мови Архітектура мікроконтролерів Введення в розробку розподілених інформаційних систем Дискретна математика Інформаційне обслуговування користувачів Інформація та моделювання в управлінні виробництвом Комп'ютерна графіка Лекції


Методи swap(), empty(), back() та pop_back()


Дата додавання: 2014-04-22; переглядів: 906.


Наступна програма 15.12 демонструє ще кілька методів та векторів.

#include<iostream>

#include<vector>

#include<conio>

using namespace std;

int main()

{ double arr[]={1.1,2.2,3.3,4.4};

vector<double>v1(arr,arr+4);

vector<double>v2(4);

v1.swap(v2);

while(!v2.empty()) //поки вектор не порожній

{cout<<v2.back()<<' ';//вивести останній елемент

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

}

cout<<endl;

getch();

return 0;

}

 

Програма 15.12

В цій програмі ми використали два нові конструктори векторів. Перший

vector<double>v1(arr,arr+4);

ініціалізує вектор v1 значеннями звичайного масиву С++, переданого йому в якості аргументу. Аргументами цього конструктора є вказівники на початок масиву і на елемент «після останнього».

В другому конструкторі

vector<double>v2(4);

вектор v2 ініціалізується установкою його розміру. Ми встановили його рівним 4. Але значення самого вектора при ініціалізації не передається. Обидва вектори містять дані типу double.

Метод swap() обмінює дані одного вектора на дані іншого, при цьому порядок елементів не змінюється. Оператор

v1.swap(v2);

міняє вектор v2 на v1.

Метод back() повертає значення останнього елемента вектора. Ми виводимо його за допомогою cout(). Метод pop_back() видаляє останній елемент вектора.

Дещо дивно, що pop_back() тільки видаляє останній елемент вектора, але не повертає його значення, як pop() при роботі зі стеком. Тому слід використовувати pop_back() i back() в парі.

Деякі методи, наприклад, swap(), існують і у вигляді алгоритмів. В таких випадках краще вибрати метод. Робота з методом для конкретного контейнера звичайно є ефективнішою. Інколи є сенс використовувати і те і інше.. Наприклад, такий підхід можна використовувати для обміну елементів двох контейнерів різних типів.

 


<== попередня лекція | наступна лекція ==>
Вектори | Методи insert() та erase()


Онлайн система числення Калькулятор онлайн звичайний Науковий калькулятор онлайн