Отвлечённый пример:
Тебе нужно положить носок в ящик. Открываешь ящик, кладёшь носок, закрываешь ящик.
Тебе нужно положить трусы в ящик. Открываешь ящик, кладёшь трусы, закрываешь ящик.
Тебе нужно положить дирижабль в ящик. Открываешь ящик, кладёшь дирижабль, закрываешь ящик.
В алгоритма меняется только то, что кладёшь. Основные шаги остаются без изменений.
Программисты подумали, что это очнь интересная концепция - писать универсальные алгоритмы, которые бы работами с произвольными типами данных, и назвали это "шаблоном".
pair - это класс, содержащий два элемента. Но класс в C++ не может содержать поля "любого типа", поэтому использовали шаблон. Вместо того, чтобы для пары "мжчина" - "женсчина" писать отдельный класс типа
pair_of_humans { private: Man man; Woman woman; ...}
Сделали шаблон
pair < Одно, Другое > { private: < Одно > first; < Другое > second; ...}
И теперь могут использовать pair< Man, Woman >, которое при компиляции превратится в { private Man first; Woman secondl; ...}Все алгоритмы, написанные в классе pair остаются работоспособными независимо от типов "в уголках".Можно сделать pair< Man, Man >, pair< Man, Car >, pair<Man, pair < Woman, Woman > >, ни написав ни строчки лишнего кода. .
Другие языки программирования и технологии
что это означает? set <pair > s;
set (контейнер, который содержит уникальные элементы)
http://www.cplusplus.com/reference/set/set/
pair (пара элементов) в данном случае состоит из двух целых
http://www.cplusplus.com/reference/utility/pair/?kw=pair
http://www.cplusplus.com/reference/set/set/
pair (пара элементов) в данном случае состоит из двух целых
http://www.cplusplus.com/reference/utility/pair/?kw=pair
Похожие вопросы
- <<<<<<<<<<<<html>>>>>>>>>>>>...
- Mozila: HTML+CSS <col> не работает. В чем проблема?
- Перемещение < div > средствами JavaScript (см. внутри)
- <<<delphi,>>>
- Вопрос к сайто- строителям, что за теги <noindex> и зачем ими закрывать внешние ссылки?
- Вопрос C++. #include <iostream> using namespace std; int main() { int h; cout << "Vvedite chislo" <
- В html-коде сайта прописано <meta>. Как и где прописать мета-теги для поисковиков?
- Для чего используется и <meta>? В HTML.
- Для чего используется используется "" и "<meta>"?
- Программисты - совы, помогите!)) <СИ>
#include
#include
#include
using namespace std;
void out(pair p) {
cout<<p.first <<':'<<p.second << endl;
}
int main()
{
set<pair > s;
cout << "test" << endl;
s.insert(pair(10,10));
s.insert(pair(10,20));
s.insert(pair(10,10));
for_each(s.begin(), s.end(), out);
return 0;
}
s.insert(pair(10,10)); во второй раз не будет в коллекции set, т. к. она уже там есть