Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
Разработка программного обеспечения

Container Concepts

Boost , ,

Boost C++ Libraries

...one of the most highly regarded and expertly designed C++ library projects in the world. Herb Sutter and Andrei Alexandrescu, C++ Coding Standards

Container Concepts

Vector

Description

Вектор описывает общие аспекты плотных, упакованных и разреженных векторов.

Refinement of

По умолчанию,Векторная экспрессия.

Associated types

Кроме типов, определяемыхВекторной экспрессией

Общественная база вектор_контейнер V должен быть получен из этого типа публичной базы.
Решетка для хранения V:array_type хранение концепция.хранение concept.[ORIG_END] -->

Notation

<V> Тип, который является моделью вектора
<v> Типовые объекты<V>
<n, i> Объекты типа, конвертируемые в<size_type>
<t> Объект типа, конвертируемый в<value_type>
<p> Объект типа, конвертируемый в<bool>

Definitions

Valid expressions

В дополнение к выражениям, определенным в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&>в противном случае

Expression semantics

Семантика выражения определяется только там, где она отличается или не определена вВекторной экспрессии.

Name Expression Precondition Semantics Postcondition
Размер конструктора <V v (n)> <n >= 0> Выделяют вектор<n>элементов. <v.size () == n>.
Доступ к элементам <v[n]> <0<n>v.size()> возвращает n-й элемент в v  
Включить <v.insert_element (i, t)> <0 <= i < v.size ()>. Вставить элемент в<v (i)>со значением<t>. Требования к хранению вектора могут быть увеличены. <v (i)>равно<t>.
стирать <v.erase_element (i)> <0 <= i < v.size ()> Уничтожает элемент<v (i)>и заменяет его по умолчанию<value_type ()>. Требования к хранению вектора могут быть снижены. <v (i)>равно<value_type ()>.
Чисто. <v.clear ()>  
<for (i = 0; i < v.size (); ++ i)>
 <v.erase_element (i);>
 
размер <v.resize (n)
v.resize (n, p)
>
  Перераспределяет вектор так, чтобы он мог удерживать<n>элементов.
Стирает или добавляет элементы, чтобы привести вектор к установленному размеру. Прилагаемые элементы копий<value_type()>.
Когда<p == false>тогда существующие элементы не сохраняются и элементы не будут добавлены как нормальные. Вместо этого вектор находится в том же состоянии, что и после эквивалентного конструктора размеров.
<v.size () == n>.
хранение <v.data()> Возвращает ссылку на основное плотное хранилище.  

Complexity guarantees

Сложность времени выполнения конструктора размеров линейна по размеру вектора.

Сложность времени выполнения вставки_элемента и стирания_элемента специфична для модели Vector и зависит от увеличения/снижения требований к хранению.

Сложность времени выполнения размера является линейной в размере вектора.

Invariants

Models

  • vector,bounded_vector,c_vector
  • unit_vector,zero_vector,scalar_vector
  • mapped_vector;,compressed_vector,coordinate_vector

Notes

Как пользователь, вам не нужно беспокоиться о том, чтоВекторявляется усовершенствованием Векторного Выражения. Быть доработкой VectorExpression важно только для шаблона-выражения, но не для пользователя.

<operator[]>добавляется исключительно для удобства и совместимости с<std::vector>. В uBLAS, однако, обычно<operator()>используется для индексации, потому что это может быть использовано как для векторов, так и для матриц.

Matrix

Description

Матрица описывает общие аспекты плотных, упакованных и разреженных матриц.

Refinement of

Дефолт Конструктивный,Матричная экспрессия.

Associated types

В дополнение к типам, определеннымМатричная экспрессия

Общественная база matrix_container M должен быть получен из этого типа публичной базы.
Решетка для хранения M:array_type хранение концепция.хранение concept.[ORIG_END] -->

Notation

<M> Тип, который является моделью матрицы
<m> Типовые объекты<M>
<n1, n2, i, j> Объекты типа, конвертируемые в<size_type>
<t> Объект типа, конвертируемый в<value_type>
<p> Объект типа, конвертируемый в<bool>

Definitions

Valid expressions

В дополнение к выражениям, определенным вМатричном выражении, следующие выражения должны быть действительными.

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&>иначе

Expression semantics

Семантика выражения определяется только там, где она отличается или не определена вМатричная экспрессия.

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 ()>и<
0 <= j < m.size2
>
Уничтожает элемент как<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)
m.resize (n1, n2, p)
>
  Переместите матрицу так, чтобы она могла удерживать<n1>строк и<n2>столбцов.
Стирает или добавляет элементы, чтобы привести матрицу к установленному размеру. Прилагаемые элементы<value_type()>копий.
Когда<p == false>тогда существующие элементы не сохраняются и элементы не будут добавлены как нормальные. Вместо этого матрица находится в том же состоянии, что и после эквивалентного размера конструктора.
133 и 134.
хранение <m.data()> Возвращает ссылку на основное плотное хранилище.  

Complexity guarantees

Сложность времени выполнения конструктора размеров квадратична по размеру матрицы.

Сложность времени выполнения вставки_элемента и стирания_элемента специфична для модели Матрицы и зависит от увеличения/снижения требований к хранению.

Сложность времени выполнения размера квадратична в размере матрицы.

Invariants

Models

  • matrix,bounded_matrix,c_matrix
  • identity_matrix,zero_matrix,scalar_matrix
  • triangular_matrix,symmetric_matrix,banded_matrix
  • mapped_matrix,compressed_matrix,coordinate_matrix

Notes

Как пользователь, вам не нужно беспокоиться о том, чтоМатрицаявляется усовершенствованием Матрицы. Утонченность 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.




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.



:: Главная :: ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-08-30 11:47:00
2025-05-20 00:52:49/0.026240110397339/1