Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
MYлекция14.docx
Скачиваний:
9
Добавлен:
22.02.2015
Размер:
104.27 Кб
Скачать

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;

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]