![]() |
![]() ![]() ![]() ![]() ![]() |
![]() |
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_vector
unit_vector
,zero_vector
,scalar_vector
mapped_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_matrix
identity_matrix
,zero_matrix
,scalar_matrix
triangular_matrix
,symmetric_matrix
,banded_matrix
mapped_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.
Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.
:: Главная :: ::
реклама |