» Главная
eXcode.ru » Статьи » С / С++
» Новости
» Опросы
» Файлы
» Журнал



Пользователей: 0
Гостей: 7





Основные компоненты библиотеки STL




    Этот раздел содержит некоторые основные шаблонные функции и классы, которые используются в остальной части библиотеки.

Операторы (Operators)

    Чтобы избежать избыточных определений operator!= из operator== и operator>, <=, >= из operator<, библиотека обеспечивает следующее:

template <class Tl, class T2>
inline bool operator!=(const T1& x, const T2& y) { 
       return !(x == y);
}

template <class Tl, class T2>
inline bool operator>(const T1& x, const T2& y) {
       return y < x;
}

template <class Tl, class T2>
inline bool operator<=(const T1& x, const T2& y) { 
       return !(y < x);
}

template <class Tl, class T2>
inline bool operator>=(const T1& x, const T2& y) { 
      return !(x < y);
}

Пара (Pair)

    Библиотека включает шаблоны для разнородных пар значений.

template <class T1, class T2>
struct pair {
       T1 first;
       T2 second;
       pair() {}
       pair(const T1& x, const T2& y) : first(x), second(y) {} 
};

template <class T1, class T2>
inline bool operator==(const pair<Tl,T2>& x, const pair<Tl,T2>& y) { 
       return x.first == y.first && x.second == y.second;
}

template <class T1, class T2> 
inline bool operator<(const pair<Tl,T2>& x, const pair<Tl,T2>& y) {
	return x.first < y.first 
		|| (!(y.first < x.first) && x.second < y.second);
}

    Библиотека обеспечивает соответствующую шаблонную функцию make_pair, чтобы упростить конструкцию пар. Вместо выражения, например:

return pair<int, double>(5, 3.1415926); // явные типы, 

можно написать

return make_pair(5, 3.1415926); // типы выводятся.


template <class Tl, class T2>
inline pair<Tl,T2> make_pair(const T1& x, const T2& y) { 
return pair<Tl,T2>(x, y);
К началу статьи





Добавил: LedWormДата публикации: 2006-03-14 09:56:45
Рейтинг статьи:3.00 [Голосов 10]Кол-во просмотров: 5414

Комментарии читателей

Всего комментариев: 0
Ваше имя: *
Текст записи: *
Имя:

Пароль:



Регистрация

Какой вид спорта вы предпочитаете?
Футбол
28% (61)
Баскетбол
9% (20)
Волейбол
8% (18)
Теннис
5% (10)
Легкая атлетика
2% (5)
Хоккей
5% (11)
Лыжный спорт
3% (6)
Всеми
3% (7)
Другим
18% (38)
Я не дружу со спортом!
19% (41)

Проголосовало: 217
Изобрели суперкомпьютер. Позвали англичанина, немца и русского колхозника и сказали:
- Назовите два числа и компьютер произведет с ними любую операцию. Если он не сможет посчитать, вы получите кучу денег!
Англичанин называет 10^6581 - компьютер все посчитал и его выгнали. Немец называет 236^65468749846 - компьютер все посчитал и его тоже выгнали.
Русский говорит:
- До х#я...
Компьютер зависает. Изобретатели посовещались и решили:
- Поехали к нему в колхоз, наверное, у них там все такие умные!
Приезжают в колхоз, смотрят - мужик поле косит. Подходят к нему и спрашивают:
- Мужик, скажи, а "до х#я" это много?
- Да как вам сказать... Видите поле, которое я кошу? Это до х#я.
- Не поняли... А вот поле через дорогу - это тоже до х#я?
- А это соседское, это до п#зды!!!
Рейтинг: 8.3/10 (7)
Посмотреть все анекдоты