Ћекции.ќрг


ѕоиск:




 атегории:

јстрономи€
Ѕиологи€
√еографи€
ƒругие €зыки
»нтернет
»нформатика
»стори€
 ультура
Ћитература
Ћогика
ћатематика
ћедицина
ћеханика
ќхрана труда
ѕедагогика
ѕолитика
ѕраво
ѕсихологи€
–елиги€
–иторика
—оциологи€
—порт
—троительство
“ехнологи€
“ранспорт
‘изика
‘илософи€
‘инансы
’ими€
Ёкологи€
Ёкономика
Ёлектроника

 

 

 

 


Ѕазовые пон€ти€




јлгоритм Ц вычислительна€ процедура.

 онтейнер Ц класс, управл€ющий набором объектов в пам€ти.

»тератор Ц прослойка между конкретным контейнером и обобщенным алгоритмом.

‘ункциональный объект / функтор / - инкапсулирует функцию в объекте дл€ использовани€ другими. Ћ€мбда-выражение Ц анонимный функтор со специальным синтаксисом.

 онтейнеры

¬ контейнерах можно выделить основные используемые типы данных: пара, вектор, список, очередь, стек, словарь.

ѕростые контейнеры

2.1.1 ѕара (Pair / Tuple)

ѕара значений состоит из двух св€занных как-то значений. „асто бывает лениво плодить отдельную структуру или класс только дл€ того, чтобы объединить данные, списками которых обмениваютс€ подпрограммы (смотрите подпрограмму в примере, типичный случай)Е  огда количество данных невелико, используютс€ пары. ѕара агрегирует 2 значени€ и предоставл€ет к ним доступ.

ѕримеры создани€ пар ниже.

#include "stdafx.h"

#include <utility>

#include <vector>

 

using namespace std;

 

vector<pair<int, int> > GetPoints()

{

vector<pair<int, int> > points;

points.push_back(make_pair(1, 1));

points.push_back(make_pair(1, 3));

points.push_back(make_pair(2, 4));

return points;

}

 

int _tmain(int argc, _TCHAR* argv[])

{

pair <int, int> point(13, 555); // конструкторы инициализации

pair <int, int> point2; // по-умолчанию

pair <int, int> point3(point); // копировани€

 

auto point4 = make_pair(3, 4); // pair <int, int> point(3, 4);

 

auto points = GetPoints();

 

return 0;

}

«ачем добавили make_pair подпрограмму?

„тобы не писать €вно типы, вида pair<int, int>.

 

 ак достать агрегированные данные?

—труктура позвол€ет получить данные через пол€ first и second.

 

 ак в дальнейшем развивалс€ этот концепт?

¬ы€снилось, что иногда хочетс€ агрегировать не 2, а больше данных: поэтому пару подогнули в других €зыках программировани€, чтобы количество аргументов было опциональным. “акже концепт переименовали в Tuple.

 

Ќасколько кошерно пользоватьс€ парой?

¬едь исчезает смысл полей. Ћегко перепутать и ошибитьс€.

¬ принципе, когда передаетс€ много данных в паре, то приходитс€ помнить, что за оно. Ћегко ошибитьс€, например, пришла пара tuple<int, int, int>(13,333,333), без просмотра исходного кода, сложно пон€ть, какое число что обозначает. ѕодход: если где-то в одном месте это понадобилось сделать Ц то это еще ничего, а если внутри системы циркулируют только пары, то это некошерно: т€жело читать код, лучше завести структуру.

 онтейнеры с последовательным доступом

ѕопул€рны vector, list. ќстальные типы практически не используютс€ и будут лишь упом€нуты.





ѕоделитьс€ с друзь€ми:


ƒата добавлени€: 2015-05-05; ћы поможем в написании ваших работ!; просмотров: 464 | Ќарушение авторских прав


ѕоиск на сайте:

Ћучшие изречени€:

¬аше врем€ ограничено, не тратьте его, жив€ чужой жизнью © —тив ƒжобс
==> читать все изречени€...

2018 - | 1982 -


© 2015-2024 lektsii.org -  онтакты - ѕоследнее добавление

√ен: 0.012 с.