Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
template_metaprogramming_ru.docx
Скачиваний:
12
Добавлен:
01.07.2025
Размер:
774 Кб
Скачать
☆

(Расширенная ассоциативная последовательность)

Описание:

Расширенная ассоциативная последовательность – ассоциативаня последовательность, которая осуществлять вставку и удаление элементов. В отличие от ассоциативной последовательности, расширенная ассоциативная последовательность не обеспечивает механизм вставки элемента в определенную позицию.

Требования к выражениям:

В следующей таблице и спецификациях, s - это ассоциативная последовательность, pos – итератор в s, k и х - произвольные типы.

Дополняет требования, определенные для ассоциативной последовательности, должны быть действительными следующие выражения:

Выражение

Тип

Сложность

insert<s,x>::type

Extensible Associative Sequence

Амортизированное постоянное время.

insert<s,pos,x>::type

Extensible Associative Sequence

Амортизированное постоянное время.

erase_key<s,k>::type

Extensible Associative Sequence

Амортизированное постоянное время.

erase<s,pos>::type

Extensible Associative Sequence

Амортизированное постоянное время.

clear<s>::type

Extensible Associative Sequence

Амортизированное постоянное время.

Семантика выражений:

Поддерживает семантику расширенной последовательности, добавляет отличные/не определенные выражения:

Выражение

Семантика

insert<s,x>::type

Вставляет x в последовательность s, результирующая последовательность r эквивалентна s, за исключением

at<r,key_type<s,x>::type>::type идентичной value_type<s,x>::type;

insert<s,pos,x>::type

Эквивалентно insert<s,x>::type, pos игнорируется;

erase_key<s,k>::type

Удаляет элементы в последовательности s, ассоциированные с ключом (key) k, результирующая последовательность r эквивалентна s, за исключением has_key<r,k>::value == false;

erase<s,pos>::type

Удаляет элемент из определенной позиции, эквивалнтно erase_key<s,deref<pos>::type>::type;

clear<s>::type

Пустая последовательность, концепт-идетнична последовательности s;

Модели:

  • set

  • map

Смотри также:

Sequences, Associative Sequence, insert, erase, clear

Integral Sequence Wrapper

(Обертка интегральной последовательности )

Описание:

Обертка интегральной последовательности - это шаблон класса, который обеспечивает краткий интерфейс для создания соответствующей последовательности интегральных констант. В частности, если предположить, что seq это имя обертки основной последовательности и c1, c2, ... , сn являются интегральными константами, интегрального типа T, которые храняться в данной последовательности, то обертка предоставляет следующие обозначения:

seq_c<T,c1,c2,... cn>

Если seq это переменная последовательность, пронумерованные формы оберток имеют следующий вид:

seqn_c<T,c1,c2,... cn>

Требования к выражениям:

В следующей таблице и спецификациях, seq является меткой-заполнителем (placeholder) для имени основной последовательности в обертке интегральной последовательности.

Выражение

Тип

Сложность

seq_c<T,c1,c2, ... cn>

Forward Sequence

Амортизированное постоянное время.

seq_c<T,c1,c2, ... cn>::type

Forward Sequence

Амортизированное постоянное время.

seq_c<T,c1,c2, ... cn>::value_type

Интегральный тип

Амортизированное постоянное время.

seqn_c<T,c1,c2, ... cn>

Forward Sequence

Амортизированное постоянное время.

seqn_c<T,c1,c2, ... cn>::type

Forward Sequence

Амортизированное постоянное время.

seqn_c< T,c1,c2, ... cn>::value_type

Интегральный тип

Амортизированное постоянное время.

Семантика выражений:

typedef seq_c<T,c1,c2, ... cn> s;

typedef seqn_c<T,c1,c2, ... cn> s;

Семантика: s это последовательность интегральных константных обетрток seq

integral_c<T,c1>, integral_c<T,c2>, ... integral_c<T,cn>

Постусловие:

size<s>::value == n.

typedef seq_c<T,c1,c2,... cn>::type s;

typedef seqn_c<T,c1,c2,... cn>::type s;

Семантика: s идентична

seqn<integral_c<T,c1>,integral_c<T,c2>, ... integral_c<T,cn>>.

typedef seq_c<T,c1,c2,... cn>::value_type t;

typedef seqn_c<T,c1,c2,... cn>::value_type t;

Семантика:

is_same<t,T>::value == true.

Модели:

  • vector_c

  • list_c

  • set_c

Смотри также:

Sequences, Variadic Sequence, Integral Constant

Variadic Sequence

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]