Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Техника traits



Некоторые сложные контейнеры (например, строки) предъявляют большие требования к своим элементам. Для символов требуется и возможность сравнения, и наличие спецсимволов для конца строки и конца файла, и многое другое.

В то же время хочется иметь возможность применять эти контейнеры для разных типов символов (например, Unicode строк). Знание об алгоритмах сравнения символов, символе конца строки, символе конца файла и других необходимо отделить от конкретного типа символов (чтобы мы могли использовать в контейнере даже тот тип символа, автор которого об этой возможности не думал).

Для этого создается специальный тип, определяющий для другого типа некоторый набор применяемых к нему операций. Этот тип похож на тип компаратора, но отвечает не только за сравнение, но и за многое другое. Он обеспечивает все операции, необходимые другому типу (например, для того, чтобы быть элементом сложного контейнера).

Например, тип char_traits обеспечивает для другого типа все операции, необходимые для того, чтобы быть символом (элементом строки и значением, читаемым из потока). Мы можем определить для любого типа элемента тип traits с тем же набором методов, что и у char_traits, и использовать этот тип элемента в роли символа.





Дата публикования: 2015-01-13; Прочитано: 194 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.007 с)...