Русская документация для фриланесеров
Главная arrow C++ arrow Основные компоненты библиотеки STL  
08.01.2009 г.
Главное меню
Главная
Поиск
PHP
.NET
Java
Ruby
C++
Delphi
Другие языки
Базы данных
Безопасность
Сети
ОС
Мобильные
Теория дизайна
WEB
Разное
Админцентр



тахеометры, теодолит лазерный

Основные компоненты библиотеки STL Печать E-mail
Автор Westry   
29.12.2007 г.
Этот раздел содержит некоторые основные шаблонные функции и классы, которые используются в остальной части библиотеки.  

Операторы (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);
 
« Пред.   След. »
Webdesign by Webmedie.dk Webdesign by Webmedie.dk