Сайт підготовки до олімпіади з інформатики

програмування в С++

Заняття (21.03.2018) PDF Печать E-mail
Добавил(а) Administrator   
23.03.18 10:57

Зміст

pair<type1, type2>.. 2

vector<type1>.. 3

stack<type1>.. 4

deque<type1>.. 5

map<type1, type2>.. 6

set<type1>.. 7

Задачі з e-olymp. 8


pair<type1, type2>

pair<int, int> p;

p.first - перший елемент

p.second - другйи елемент

Інші, можливі, приклади пар:

pair<double, double>

pair<pair<int, int>, int>

pair< pair<int, int>, pair<int, int> >

pair<long long, vector<int> >

vector<type1>

vector<int> m;

m.push_back(a); - добавити в кінець елемент a

m[i] – звернутия до i-ого елемента

m.size() - розмір вектора

m.back() - останній елемент вектора

m.clear(); - очистити вектор

m.empty() - true якщо вектор пустий, інакше false

m.begin() і m.end() - почак і кінець вектора. Необхідні для сортування

m.erase(m.begin()+i); - видалити i-ий елемент

m.erase(m.begin()+i, m.begin()+j); - видалити елементи від i-ого до j-ого

Видалення працює за лінійний час, тобто доволі довго.


stack<type1>

stack<int> s;

s.push(a); - добавити елемент a

s.size() - розмір стека

s.top() - останній елемент стека

s.pop() - видалити останній елемент стека

s.empty() - true якщо стек пустий, інакше false


deque<type1>

deque<int>d;

d.push_front(a); - добавити елементa на початок дека

d.push_back(a); - добавити елементa в кінці дека

d.front() - перший елемент дека

d.back() - останній елемент дека

d.pop_front(); - видалити перший елемент

d.pop_back(); - видалити останній елемент

d.size() - розмір дека

d.empty() - true якщо дек пустий, інакше false

d.clear(); - очистити дек

d[i] - i-ий елемент в деці


map<type1, type2>

map<int, int> m;

map<int, int>::iterator it; - ітератор(вказівник) на певний елемент мапи

m[i] = a; - присвоєння елементу мапи з індексомi значення a

m.count(i) - перевірка чи використовувався елемент з індексом і

m.clear(); - очистити мапу

m.begin() - початок мапи і заодно вказівник на перший елемент

m.end() - вказівник на кінець мапи. Розташований на 1 позицію дальше від останнього елмента мапи

m.empty() -true якщо мапа пуста, інакше false

m.size() – розмір мапи(кількість елементів, які використовувалися в мапі)

it->first - індекс елемента мапи на який вказуєit

it->second - значення елемента мапи на який вказує it


set<type1>

set<int>s;

set<int>::iteratorit; - ітератор(вказівник) на певний елемент сета

multiset<int>s2; - сет в якому можуть повторюватися значення

s.insert(a); - вставити елементa в сет

s.begin() - вказівник на початок сета і одночасто і на перший елемент

s.end() - вказівник на кінець сета. Розташований на 1 позицію дальше від останнього елмента сета

s.erase(a) - видалити елемент(всі елементи) aв сеті(мультисеті)

s.erase(it) - видалити елемент, на який вказує вказівник it

s.find(a) - вказівник на елемент aв множині, або s.end() якщо такого елемента в сеті немає

s.upper_bound(a) - вказівник на перший елемент, який строго більшийa

s.lower_bound(a) - вказівник на перший елемент, який більший або рівний a

s.size() - розмір сета

s.clear(); - очистити сет

s.empty() - true якщо сет пустий, інакше false

*it- значення самого елемента в сеті

it++; - перенести вказівник на наступний елемент в сеті

it--; - перенести вказівник на попередній елемент в сеті

Приклад проходу по всьому сетові(знаходення суми всіх елементів) :

for(it=s.begin();it!=s.end();it++)

{

        sum+= *it;

}


Задачі з e-olymp

291 – set + deque

555 – set

693 – stack

694 – deque

790 – set

1211 – map

1225 – set

1226 – set

1227 – set

1228 – set

1776 – stack

1868 – map

1871 – stack

1872 – vector

2040 – map(можна простими масивами, але для розуміння краще зробити використовуючи map)

2479 – stack

2661 – set

3004 – set

Примітка: setпідрозуміває використання setабо multiset, в залежності від задачі

 

Статистика

Пользователей : 261
Статей : 225
Просмотрено статей : 105562

Вход/Регистрация