Наступна програма 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(), існують і у вигляді алгоритмів. В таких випадках краще вибрати метод. Робота з методом для конкретного контейнера звичайно є ефективнішою. Інколи є сенс використовувати і те і інше.. Наприклад, такий підхід можна використовувати для обміну елементів двох контейнерів різних типів.