![]() |
![]() ![]() ![]() ![]() |
![]() |
Container ConceptsBoost , ,
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Общественная база | вектор_контейнер |
V должен быть получен из этого типа публичной базы. |
| Решетка для хранения | V:array_type | хранение концепция.хранение concept.[ORIG_END] --> |
<V> |
Тип, который является моделью вектора |
<v> |
Типовые объекты<V> |
<n, i> |
Объекты типа, конвертируемые в<size_type> |
<t> |
Объект типа, конвертируемый в<value_type> |
<p> |
Объект типа, конвертируемый в<bool> |
В дополнение к выражениям, определенным вDefaultConstructible,Vector Expression, следующие выражения должны быть действительными.
| Name | Expression | Type requirements | Return type |
|---|---|---|---|
| Размер конструктора | <V v (n)> |
<V> |
|
| Включить | <v.insert_element (i, t)> |
<v>Неподвижно. |
<void> |
| стирать | <v.erase_element (i)> |
<v>Неподвижно. |
<void> |
| Чисто. | <v.clear ()> |
<v>Неподвижно. |
<void> |
| размер | <v.resize (n)>< v.resize (n, p)> |
<v>Неподвижно. |
<void> |
| хранение | <v.data()> |
<v>Неподвижный и плотный. |
<array_type&>Если<v>изменчив,<const array_type&>в противном случае |
Семантика выражения определяется только там, где она отличается или не определена вВекторной экспрессии.
Сложность времени выполнения конструктора размеров линейна по размеру вектора.
Сложность времени выполнения вставки_элемента и стирания_элемента специфична для модели Vector и зависит от увеличения/снижения требований к хранению.
Сложность времени выполнения размера является линейной в размере вектора.
vector,bounded_vector,c_vectorunit_vector,zero_vector,scalar_vectormapped_vector;,compressed_vector,coordinate_vectorКак пользователь, вам не нужно беспокоиться о том, чтоВекторявляется усовершенствованием Векторного Выражения. Быть доработкой VectorExpression важно только для шаблона-выражения, но не для пользователя.
<operator[]>добавляется исключительно для удобства и совместимости с<std::vector>. В uBLAS, однако, обычно<operator()>используется для индексации, потому что это может быть использовано как для векторов, так и для матриц.
Матрица описывает общие аспекты плотных, упакованных и разреженных матриц.
Дефолт Конструктивный,Матричная экспрессия.
В дополнение к типам, определеннымМатричная экспрессия
| Общественная база | matrix_container |
M должен быть получен из этого типа публичной базы. |
| Решетка для хранения | M:array_type | хранение концепция.хранение concept.[ORIG_END] --> |
<M> |
Тип, который является моделью матрицы |
<m> |
Типовые объекты<M> |
<n1, n2, i, j> |
Объекты типа, конвертируемые в<size_type> |
<t> |
Объект типа, конвертируемый в<value_type> |
<p> |
Объект типа, конвертируемый в<bool> |
В дополнение к выражениям, определенным вМатричном выражении, следующие выражения должны быть действительными.
| Name | Expression | Type requirements | Return type |
|---|---|---|---|
| Размер конструктора | <M m (n1, n2)> |
<M> |
|
| Включить | <m.insert_element (i, j, t)> |
<m>Неподвижно. |
<void> |
| стирать | <m.erase_element (i, j)> |
<m>Неподвижно. |
<void> |
| Чисто. | <m.clear ()> |
<m>Неподвижно. |
<void> |
| размер | <m.resize (n1, n2)>< m.resize (n1, n2, p)> |
<m>Неподвижно. |
<void> |
| хранение | <m.data()> |
<m>является мутабельным и плотным. |
<array_type&>если<m>изменчиво,<const array_type&>иначе |
Семантика выражения определяется только там, где она отличается или не определена вМатричная экспрессия.
| Name | Expression | Precondition | Semantics | Postcondition |
|---|---|---|---|---|
| Размер конструктора | <M m (n1, n2)> |
<n1 >= 0>и<n2 >= 0> |
Выделяют матрицу из<n1>строк и<n2>колонок. |
133 и 134. |
| Включить | <m.insert_element (i, j, t)> |
<0 <= i < m.size1 ()>,< 0 <= j < m.size2 ()>. |
Вставить элемент в<m (i, j)>со значением<t>. Требования к хранению матрицы могут быть увеличены. |
<m (i, j)>равно<t>. |
| стирать | <m.erase_element (i, j)> |
<0 <= i < m.size1 ()>и<> |
Уничтожает элемент как<m (i, j)>и заменяет его по умолчанию<value_type ()>. Требования к хранению матрицы могут быть снижены. |
<m (i, j)>равно<value_type ()>. |
| Чисто. | <m.clear ()> |
< for (i = 0; i < m.size1 (); ++ i)>< for (j = 0; j < m.size2 (); ++ j)>< m.erase_element (i, j);> |
||
| размер | <m.resize (n1, n2)
> |
Переместите матрицу так, чтобы она могла удерживать<n1>строк и<n2>столбцов.Стирает или добавляет элементы, чтобы привести матрицу к установленному размеру. Прилагаемые элементы< value_type()>копий.Когда< p == false>тогда существующие элементы не сохраняются и элементы не будут добавлены как нормальные. Вместо этого матрица находится в том же состоянии, что и после эквивалентного размера конструктора. |
133 и 134. | |
| хранение | <m.data()> |
Возвращает ссылку на основное плотное хранилище. |
Сложность времени выполнения конструктора размеров квадратична по размеру матрицы.
Сложность времени выполнения вставки_элемента и стирания_элемента специфична для модели Матрицы и зависит от увеличения/снижения требований к хранению.
Сложность времени выполнения размера квадратична в размере матрицы.
matrix,bounded_matrix,c_matrixidentity_matrix,zero_matrix,scalar_matrixtriangular_matrix,symmetric_matrix,banded_matrixmapped_matrix,compressed_matrix,coordinate_matrixКак пользователь, вам не нужно беспокоиться о том, чтоМатрицаявляется усовершенствованием Матрицы. Утонченность MatrixExpression важна только для шаблона-экспрессии, но не для пользователя.
Авторское право (©) 2000-2002 Йорг Уолтер, Матиас Кох
На использование, модификацию и распространение распространяется лицензия Boost Software License, Version 1.0. (См. сопроводительный файл LICENSE_1_0.txt или копию по адресу) http://www.boost.org/LICENSE_1_0.txt.
Статья Container Concepts раздела может быть полезна для разработчиков на c++ и boost.
:: Главная :: ::
реклама |