...one of the most highly
regarded and expertly designed C++ library projects in the
world.
— Herb Sutter and Andrei
Alexandrescu, C++
Coding Standards
A Vector describes common aspects of dense, packed and sparse vectors.
V 
A type that is a model of Vector 
v 
Objects of type V 
n, i 
Objects of a type convertible to size_type 
t 
Object of a type convertible to value_type 
p 
Object of a type convertible to bool 
In addition to the expressions defined in Vector Expression the following expressions must be valid.
Name  Expression  Type requirements  Return type 

Sizing constructor  V v (n) 
V 

Insert  v.insert (i, t) 
v is mutable. 
void 
Erase  v.erase (i) 
v is mutable. 
void 
Clear  v.clear () 
v is mutable. 
void 
Resize  v.resize (n) v.resize (n, p) 
v is mutable. 
void 
Semantics of an expression is defined only where it differs from, or is not defined in Vector Expression .
Name  Expression  Precondition  Semantics  Postcondition 

Sizing constructor  V v (n) 
n >= 0 
Allocates a vector of n elements. 
v.size () == n . 
Insert  v.insert (i, t) 
0 <= i < v.size () andv (i) is a copy of value_type () . 
A copy of t is inserted in v . 
v (i) is a copy of t . 
Erase  v.erase (i) 
0 <= i < v.size () 
Destroys the element v (i) and replaces it with
value_type () . 
v (i) is a copy of value_type
() . 
Clear  v.clear () 
Equivalent tofor (i = 0; i < v.size (); ++ i) v.erase (i); 

Resize  v.resize (n)

Reallocates the vector so that it can hold n
elements.Erases or appends elements in order to bring the vector to the prescribed size. Appended elements copies of value_type() .
When p == false then exisiting elements are not preserved and elements will not appended as normal. Instead the vector is in the same state as that after an equivilent sizing constructor. 
v.size () == n . 
The runtime complexity of the sizing constructor is linear in the vector's size.
The runtime complexity of insert and erase is specific for the vector.
The runtime complexity of resize is linear in the vector's size.
vector<T>
, bounded_vector<T, N>
unit_vector<T>
, zero_vector<T>
, scalar_vector<T>
sparse_vector<T>
, compressed_vector
, coordinate_vector
A Matrix describes common aspects of dense, packed and sparse matrices.
M 
A type that is a model of Matrix 
m 
Objects of type M 
n1, n2, i, j 
Objects of a type convertible to size_type 
t 
Object of a type convertible to value_type 
p 
Object of a type convertible to bool 
In addition to the expressions defined in Matrix Expression the following expressions must be valid.
Name  Expression  Type requirements  Return type 

Sizing constructor  M m (n1, n2) 
M 

Insert  m.insert (i, j, t) 
m is mutable. 
void 
Erase  m.erase (i, j) 
m is mutable. 
void 
Clear  m.clear () 
m is mutable. 
void 
Resize  m.resize (n1, n2) m.resize (n1, n2, p) 
m is mutable. 
void 
Semantics of an expression is defined only where it differs from, or is not defined in Matrix Expression .
Name  Expression  Precondition  Semantics  Postcondition 

Sizing constructor  M m (n1, n2) 
n1 >= 0 and n2 >= 0 
Allocates a matrix of n1 rows and n2
columns. 
m.size1 () == n1 and m.size2 () ==
n2 . 
Insert  m.insert (i, j, t) 
0 <= i < m.size1 () ,0 <= j < m.size2 () and is a copy of value_type () . 
A copy of t is inserted in m . 
m (i, j) is a copy of t . 
Erase  m.erase (i, j) 
0 <= i < m.size1 () and

Destroys the element m (i, j) and replaces it with
value_type () . 
m (i, j) is a copy of value_type
() . 
Clear  m.clear () 
Equivalent tofor (i = 0; i < m.size1 (); ++ i) for (j = 0; j < m.size2 (); ++ j) m.erase (i, j); 

Resize  m.resize (n1, n2)

Reallocate the matrix so that it can hold n1 rows
and n2 columns.Erases or appends elements in order to bring the matrix to the prescribed size. Appended elements are value_type()
copies.When p == false then exisiting elements are not preserved and elements will not appended as normal. Instead the matrix is in the same state as that after an equivilent sizing constructor. 
m.size1 () == n1 and m.size2 () == n2 . 
The runtime complexity of the sizing constructor is quadratic in the matrix's size.
The runtime complexity of insert and erase is specific for the matrix.
The runtime complexity of resize is quadratic in the matrix's size.
matrix<T>
, bounded_matrix<T, M, N>
identity_matrix<T>
, zero_matrix<T>
, scalar_matrix<T>
triangular_matrix<T>
, symmetric_matrix<T>
, banded_matrix<T>
sparse_matrix<T>
, compressed_matrix
, coordinate_matrix
Copyright (©) 20002002 Joerg Walter, Mathias Koch
Permission to copy, use, modify, sell and distribute this document
is granted provided this copyright notice appears in all copies.
This document is provided ``as is'' without express or implied
warranty, and with no claim as to its suitability for any
purpose.
Last revised: 24/06/2004