Int main()
{char s[5]="abcd";
vector <char> v(s,s+3);
vector<char>:: iterator M=v.begin();
cout<< M[0]<< M[1]<< M[2]<<"_+_"<<endl;
/* M[0]; // первый элемент
M[1]; // второй элемент*/
M = v.end();
// M[-1];// последний элемент
cout<<M[-1]<<M[-2]<<"_*_"<<endl;
return 0;
}
Результат: abc_+_
cb_*_
Пример1 и для vector
// vectcon.cpp
// demonstrates constructors, swap(), empty(), back(), pop_back()
#include <iostream>
#include <vector>
using namespace std;
int main()
{ double arr[] = { 1.1, 2.2, 3.3, 4.4 }; // an array of doubles
vector<double> v1(arr, arr+4); // initialize vector to array
vector<double> v2(4); // empty vector of size 4
v1.swap(v2); // swap contents of v1 and v2
while( !v2.empty() ) // until vector is empty,
{cout << v2.back() << ' '; // display the last element
v2.pop_back(); // remove the last element
} // output: 4.4 3.3 2.2 1.1
cout << endl;
return 0;
}
Пример для vector (с матрицей)
#include<vector>
#include<iostream>
using namespace std;
int main()
{
int n;
cin>>n;
vector < vector<int> > a(n);
for(int i=0; i<n; i++)
{
vector<int>sm;
for(int j=0; j<n; j++)
{
int s;
cin>>s;
sm.push_back(s);
}
a[i]=sm;
for(int j=0; j<n; j++)cout<<a[i][j]<<" ";
cout<<endl;
}
return 0;
}
Обзор методов вектора
Обозначения:
n – размер вектора (тип size_type); )
x - элемент вектора(тип value_type);
first, last, it – значения итератора;
Конструкторы:
vector() – создает пустой вектор;
vector(n) – создает вектор из n элементов; К-р элемента по умолчанию.
vector(n,x) – создает вектор из n элементов, заполняет его копиями x.
vector(first, last) – создает вектор из последовательности элементов, она задается парой итераторов.
vector(v) – создает вектор путем копирования другого вектора.
Доступ к элементам:
reference front() – ссылка на первый элемент вектора;
reference back() – ссылка на последний элемент вектора;
[ ] – индексация элемента, без проверки его выхода за границу вектора.
reference at(n) – доступ к элементу с проверкой выхода за границу вектора.
Добавление, удаление элементов.
void push_back(x) – добавить элемент в конец вектора.
void pop_back() – убрать элемент с конца вектора.
void insert(it, n,x) – вставить n элементов x перед позицией it.
void insert(it, first, last) – вставить последовательность элементов перед позицией it.
void clear() – очистить вектор путем удаления всех его элементов.
iterator erase (it) – удалить из вектора элемент в позиции it.
iterator erase (first, last) – удалить из вектора последовательность элементов.
Присваивание:
= – оператор присваивания.
void assign(n,x) – заменяет текущий вектор последовательностью из n элементов x.
void assign(first, last)– заменяет текущий вектор последовательностью элементов.
Операции над векторами:
swap (v) – меняет местами два вектора: *this и v;
==, !=, < – сравнение лексикографическое.
Двусторонние очереди
Конструкторы:
deque() – по умолчанию.
deque(n, value) – создает очередь длиной n и заполняет её копиями value.
deque(first, last) ) – создает очередь путем копирования указанного диапазона элементов.
deque(vector <T>&x) – конструктор копирования.
Функции deque: аналогичны операциям и функциям вектора.
Пример1 для deque
// deque.cpp
// demonstrates push_back(), push_front(), front()
#include <iostream>
#include <deque>
using namespace std;
int main()
{
deque<int> deq;
deq.push_back(30); // push items on back
deq.push_back(40);
deq.push_back(50);
deq.push_front(20); // push items on front
deq.push_front(10);
deq[2] = 33; // change middle item
for(int j=0; j<deq.size(); j++)
cout << deq[j] << ' '; // display items
cout << endl;
return 0;
}
Пример2 для deque
// copydeq.cpp
//demonstrates normal copy with queues
#include <iostream>
#include <deque>
//#include <algorithm>
using namespace std;