1 <!DOCTYPE html PUBLIC
"-//W3C//DTD XHTML 1.0 Transitional//EN"
2 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
3 <html xmlns=
"http://www.w3.org/1999/xhtml">
5 <meta name=
"generator" content=
6 "HTML Tidy for Linux/x86 (vers 1st March 2004), see www.w3.org" />
7 <meta http-equiv=
"Content-Type" content=
8 "text/html; charset=us-ascii" />
9 <link rel=
"stylesheet" href=
"../../../../boost.css" type=
"text/css"/>
10 <link rel=
"stylesheet" href=
"ublas.css" type=
"text/css" />
11 <script type=
"text/javascript" src=
"js/jquery-1.3.2.min.js" async=
"async" ></script>
12 <script type=
"text/javascript" src=
"js/jquery.toc-gw.js" async=
"async" ></script>
16 <h1><img src=
"../../../../boost.png" align=
"middle" />Vector
</h1>
17 <div class=
"toc" id=
"toc"></div>
18 <h2><a name=
"vector"></a>Vector
</h2>
20 <p>The templated class
<code>vector
<T, A
></code> is the base
21 container adaptor for dense vectors. For a
<em>n
</em>-dimensional
22 vector and
<em>0 <= i
< n
</em> every element
23 <em>v
</em><sub><em>i
</em></sub> is mapped to the
<em>i-
</em>th
24 element of the container.
</p>
27 #include
<boost/numeric/ublas/vector.hpp
>
28 #include
<boost/numeric/ublas/io.hpp
>
31 using namespace boost::numeric::ublas;
32 vector
<double
> v (
3);
33 for (unsigned i =
0; i
< v.size (); ++ i)
35 std::cout
<< v
<< std::endl;
39 <p>Defined in the header vector.hpp.
</p>
40 <h4>Template parameters
</h4>
41 <table border=
"1" summary=
"parameters">
49 <td><code>T
</code></td>
50 <td>The type of object stored in the vector.
</td>
54 <td><code>A
</code></td>
55 <td>The type of the
<a href=
"storage_concept.html">Storage
</a> array.
<a href=
"#vector_1">[
1]
</a></td>
56 <td><code>unbounded_array
<T
></code></td>
61 <p><a href=
"container_concept.html#vector">Vector
</a>,
62 <a href=
"http://www.sgi.com/tech/stl/RandomAccessContainer.html">RandomAccessContainer
</a>
64 <h4>Type requirements
</h4>
65 <p>None, except for those imposed by the requirements of
<a href=
66 "container_concept.html#vector">Vector
</a>
67 and
<a href=
"http://www.sgi.com/tech/stl/RandomAccessContainer.html">RandomAccessContainer
</a>.
</p>
68 <h4>Public base classes
</h4>
69 <p><code>vector_container
<vector
<T, A
> ></code></p>
71 <table border=
"1" summary=
"members">
75 <th>Where defined
</th>
79 <td><code>value_type
</code>
80 <td><a href=
"expression_concept.html#vector_expression">VectorExpression
</a></td>
84 <td><code>reference
</code>
85 <td><a href=
"expression_concept.html#vector_expression">VectorExpression
</a></td>
89 <td><code>const_reference
</code>
90 <td><a href=
"expression_concept.html#vector_expression">VectorExpression
</a></td>
94 <td><code>size_type
</code>
95 <td><a href=
"expression_concept.html#vector_expression">VectorExpression
</a></td>
99 <td><code>difference_type
</code>
100 <td><a href=
"expression_concept.html#vector_expression">VectorExpression
</a></td>
104 <td><code>const_iterator
</code>
105 <td><a href=
"expression_concept.html#vector_expression">VectorExpression
</a></td>
109 <td><code>iterator
</code>
110 <td><a href=
"expression_concept.html#vector_expression">VectorExpression
</a></td>
114 <td><code>const_reverse_iterator
</code>
115 <td><a href=
"expression_concept.html#vector_expression">VectorExpression
</a></td>
119 <td><code>reverse_iterator
</code>
120 <td><a href=
"expression_concept.html#vector_expression">VectorExpression
</a></td>
124 <td><code>array_type
</code>
125 <td><a href=
"container_concept.html#vector">Vector
</a></td>
129 <td><code>vector ()
</code></td>
130 <td><a href=
"expression_concept.html#vector_expression">VectorExpression
</a></td>
131 <td>Allocates an uninitialized
<code>vector
</code> that holds zero
135 <td><code>vector (size_type size)
</code></td>
136 <td><a href=
"container_concept.html#vector">Vector
</a></td>
137 <td>Allocates an uninitialized
<code>vector
</code> that holds
138 <code>size
</code> elements.
</td>
141 <td><code>vector (const vector
&v)
</code></td>
143 <td>The copy constructor.
</td>
146 <td><code>template
<class AE
><br />
147 vector (const vector_expression
<AE
> &ae)
</code></td>
149 <td>The extended copy constructor.
</td>
152 <td><code>void resize (size_type size, bool preserve =
154 <td><a href=
"container_concept.html#vector">Vector
</a></td>
155 <td>Reallocates a
<code>vector
</code> to hold
<code>size
</code>
156 elements. The existing elements of the
<code>vector
</code> are
157 preseved when specified.
</td>
160 <td><code>size_type size () const
</code></td>
161 <td><a href=
"expression_concept.html#vector_expression">VectorExpression
</a></td>
162 <td>Returns the size of the
<code>vector
</code>.
</td>
165 <td><code>size_type max_size () const
</code></td>
166 <td><a href=
"http://www.sgi.com/tech/stl/RandomAccessContainer.html">RandomAccessContainer
</a></td>
167 <td>Returns the upper bound on the size of the
<code>vector
</code>.
</td>
170 <td><code>bool empty () const
</code></td>
171 <td><a href=
"http://www.sgi.com/tech/stl/RandomAccessContainer.html">RandomAccessContainer
</a></td>
172 <td>Equivilent to
<code>size () ==
0</code>.
</td>
175 <td><code>const array_type
& data () const
</code></td>
176 <td><a href=
"container_concept.html#vector">Vector
</a></td>
180 <td><code>array_type
& data ()
</code></td>
181 <td><a href=
"container_concept.html#vector">Vector
</a></td>
185 <td><code>const_reference operator () (size_type i)
187 <td><a href=
"expression_concept.html#vector_expression">VectorExpression
</a></td>
188 <td>Returns a
<code>const
</code> reference of the
<code>i
</code>
192 <td><code>reference operator () (size_type i)
</code></td>
193 <td><a href=
"expression_concept.html#vector_expression">VectorExpression
</a></td>
194 <td>Returns a reference of the
<code>i
</code>-th element.
</td>
197 <td><code>const_reference operator [] (size_type i) const
</code></td>
198 <td><a href=
"container_concept.html#vector">Vector
</a></td>
199 <td>Returns a
<code>const
</code> reference of the
<code>i
</code>
203 <td><code>reference operator [] (size_type i)
</code></td>
204 <td><a href=
"container_concept.html#vector">Vector
</a></td>
205 <td>Returns a reference of the
<code>i
</code>-th element.
</td>
208 <td><code>vector
&operator = (const vector
&v)
</code></td>
209 <td><a href=
"expression_concept.html#vector_expression">VectorExpression
</a></td>
210 <td>The assignment operator.
</td>
213 <td><code>vector
&assign_temporary (vector
&v)
</code></td>
214 <td><a href=
"expression_concept.html#vector_expression">VectorExpression
</a></td>
215 <td>Assigns a temporary. May change the vector
<code>v
</code>.
</td>
218 <td><code>template
<class AE
><br />
219 vector
&operator = (const vector_expression
<AE
>
221 <td><a href=
"expression_concept.html#vector_expression">VectorExpression
</a></td>
222 <td>The extended assignment operator.
</td>
225 <td><code>template
<class AE
><br />
226 vector
&assign (const vector_expression
<AE
>
228 <td><a href=
"expression_concept.html#vector_expression">VectorExpression
</a></td>
229 <td>Assigns a vector expression to the vector. Left and right hand
230 side of the assignment should be independent.
</td>
233 <td><code>template
<class AE
><br />
234 vector
&operator += (const vector_expression
<AE
>
236 <td><a href=
"expression_concept.html#vector_expression">VectorExpression
</a></td>
237 <td>A computed assignment operator. Adds the vector expression to
241 <td><code>template
<class AE
><br />
242 vector
&plus_assign (const vector_expression
<AE
>
244 <td><a href=
"expression_concept.html#vector_expression">VectorExpression
</a></td>
245 <td>Adds a vector expression to the vector. Left and right hand
246 side of the assignment should be independent.
</td>
249 <td><code>template
<class AE
><br />
250 vector
&operator -= (const vector_expression
<AE
>
252 <td><a href=
"expression_concept.html#vector_expression">VectorExpression
</a></td>
253 <td>A computed assignment operator. Subtracts the vector expression
254 from the vector.
</td>
257 <td><code>template
<class AE
><br />
258 vector
&minus_assign (const vector_expression
<AE
>
260 <td><a href=
"expression_concept.html#vector_expression">VectorExpression
</a></td>
261 <td>Subtracts a vector expression from the vector. Left and right
262 hand side of the assignment should be independent.
</td>
265 <td><code>template
<class AT
><br />
266 vector
&operator *= (const AT
&at)
</code></td>
267 <td><a href=
"expression_concept.html#vector_expression">VectorExpression
</a></td>
268 <td>A computed assignment operator. Multiplies the vector with a
272 <td><code>template
<class AT
><br />
273 vector
&operator /= (const AT
&at)
</code></td>
274 <td><a href=
"expression_concept.html#vector_expression">VectorExpression
</a></td>
275 <td>A computed assignment operator. Divides the vector through a
279 <td><code>void swap (vector
&v)
</code></td>
280 <td><a href=
"expression_concept.html#vector_expression">VectorExpression
</a></td>
281 <td>Swaps the contents of the vectors.
</td>
284 <td><code>void insert_element (size_type i, const_reference t)
</code></td>
285 <td><a href=
"container_concept.html#vector">Vector
</a></td>
286 <td>Inserts the value
<code>t
</code> at the
<code>i
</code>-th
290 <td><code>void erase_element (size_type i)
</code></td>
291 <td><a href=
"container_concept.html#vector">Vector
</a></td>
292 <td>Erases the value at the
<code>i
</code>-th element.
</td>
295 <td><code>void clear ()
</code></td>
296 <td><a href=
"container_concept.html#vector">Vector
</a></td>
297 <td>Clears the vector.
</td>
300 <td><code>const_iterator begin () const
</code></td>
301 <td><a href=
"expression_concept.html#vector_expression">VectorExpression
</a></td>
302 <td>Returns a
<code>const_iterator
</code> pointing to the beginning
303 of the
<code>vector
</code>.
</td>
306 <td><code>const_iterator end () const
</code></td>
307 <td><a href=
"expression_concept.html#vector_expression">VectorExpression
</a></td>
308 <td>Returns a
<code>const_iterator
</code> pointing to the end of
309 the
<code>vector
</code>.
</td>
312 <td><code>iterator begin ()
</code></td>
313 <td><a href=
"expression_concept.html#vector_expression">VectorExpression
</a></td>
314 <td>Returns a
<code>iterator
</code> pointing to the beginning of
315 the
<code>vector
</code>.
</td>
318 <td><code>iterator end ()
</code></td>
319 <td><a href=
"expression_concept.html#vector_expression">VectorExpression
</a></td>
320 <td>Returns a
<code>iterator
</code> pointing to the end of the
321 <code>vector
</code>.
</td>
324 <td><code>const_reverse_iterator rbegin () const
</code></td>
325 <td><a href=
"expression_concept.html#vector_expression">VectorExpression
</a></td>
326 <td>Returns a
<code>const_reverse_iterator
</code> pointing to the
327 beginning of the reversed
<code>vector
</code>.
</td>
330 <td><code>const_reverse_iterator rend () const
</code></td>
331 <td><a href=
"expression_concept.html#vector_expression">VectorExpression
</a></td>
332 <td>Returns a
<code>const_reverse_iterator
</code> pointing to the
333 end of the reversed
<code>vector
</code>.
</td>
336 <td><code>reverse_iterator rbegin ()
</code></td>
337 <td><a href=
"expression_concept.html#vector_expression">VectorExpression
</a></td>
338 <td>Returns a
<code>reverse_iterator
</code> pointing to the
339 beginning of the reversed
<code>vector
</code>.
</td>
342 <td><code>reverse_iterator rend ()
</code></td>
343 <td><a href=
"expression_concept.html#vector_expression">VectorExpression
</a></td>
344 <td>Returns a
<code>reverse_iterator
</code> pointing to the end of
345 the reversed
<code>vector
</code>.
</td>
350 <p><a name=
"vector_1">[
1]
</a> Common parameters
351 for the Storage array are
<code>unbounded_array
<T
></code> ,
352 <code>bounded_array
<T
></code> and
353 <code>std::vector
<T
></code> .
</p>
354 <h2><a name=
"unit_vector"></a>Unit Vector
</h2>
356 <p>The templated class
<code>unit_vector
<T, ALLOC
></code> represents
357 canonical unit vectors. For the
<em>k
</em>-th
358 <em>n
</em>-dimensional canonical unit vector and
<em>0 <= i
<
359 n
</em> holds
<em>u
</em><sup><em>k
</em></sup><sub><em>i
</em></sub>
360 <em>=
0</em>, if
<em>i
<> k
</em>, and
361 <em>u
</em><sup><em>k
</em></sup><sub><em>i
</em></sub> <em>=
365 #include
<boost/numeric/ublas/vector.hpp
>
366 #include
<boost/numeric/ublas/io.hpp
>
369 using namespace boost::numeric::ublas;
370 for (int i =
0; i
< 3; ++ i) {
371 unit_vector
<double
> v (
3, i);
372 std::cout
<< v
<< std::endl;
377 <p>Defined in the header vector.hpp.
</p>
378 <h4>Template parameters
</h4>
379 <table border=
"1" summary=
"parameters">
387 <td><code>T
</code></td>
388 <td>The type of object stored in the vector.
</td>
389 <td><code>int
</code></td>
392 <td><code>ALLOC
</code></td>
393 <td>An STL Allocator for size_type and difference_type.
</td>
394 <td>std::allocator
</td>
399 <p><a href=
"container_concept.html#vector">Vector
</a> .
</p>
400 <h4>Type requirements
</h4>
401 <p>None, except for those imposed by the requirements of
402 <a href=
"container_concept.html#vector">Vector
</a> .
</p>
403 <h4>Public base classes
</h4>
404 <p><code>vector_container
<unit_vector
<T
> ></code></p>
406 <table border=
"1" summary=
"members">
413 <td><code>unit_vector ()
</code></td>
414 <td>Constructs an
<code>unit_vector
</code> that holds zero
418 <td><code>unit_vector (size_type size, size_type index)
</code></td>
419 <td>Constructs the
<code>index
</code>-th
<code>unit_vector
</code>
420 that holds
<code>size
</code> elements.
</td>
423 <td><code>unit_vector (const unit_vector
&v)
</code></td>
424 <td>The copy constructor.
</td>
427 <td><code>void resize (size_type size, bool preserve =
429 <td>Resizes a
<code>unit_vector
</code> to hold
<code>size
</code>
430 elements. Therefore the existing elements of the
431 <code>unit_vector
</code> are always preseved.
</td>
434 <td><code>size_type size () const
</code></td>
435 <td>Returns the size of the
<code>unit_vector
</code>.
</td>
438 <td><code>size_type index () const
</code></td>
439 <td>Returns the index of the
<code>unit_vector
</code>.
</td>
442 <td><code>const_reference operator () (size_type i)
444 <td>Returns the value of the
<code>i
</code>-th element.
</td>
447 <td><code>const_reference operator [] (size_type i)
449 <td>Returns the value of the
<code>i
</code>-th element.
</td>
452 <td><code>unit_vector
&operator = (const unit_vector
454 <td>The assignment operator.
</td>
457 <td><code>unit_vector
&assign_temporary (unit_vector
459 <td>Assigns a temporary. May change the unit vector
<code>v
</code>
463 <td><code>void swap (unit_vector
&v)
</code></td>
464 <td>Swaps the contents of the unit vectors.
</td>
467 <td><code>const_iterator begin () const
</code></td>
468 <td>Returns a
<code>const_iterator
</code> pointing to the beginning
469 of the
<code>unit_vector
</code>.
</td>
472 <td><code>const_iterator end () const
</code></td>
473 <td>Returns a
<code>const_iterator
</code> pointing to the end of
474 the
<code>unit_vector
</code>.
</td>
477 <td><code>const_reverse_iterator rbegin () const
</code></td>
478 <td>Returns a
<code>const_reverse_iterator
</code> pointing to the
479 beginning of the reversed
<code>unit_vector
</code>.
</td>
482 <td><code>const_reverse_iterator rend () const
</code></td>
483 <td>Returns a
<code>const_reverse_iterator
</code> pointing to the
484 end of the reversed
<code>unit_vector
</code>.
</td>
488 <h2><a name=
"zero_vector"></a>Zero Vector
</h2>
490 <p>The templated class
<code>zero_vector
<T, ALLOC
></code> represents
491 zero vectors. For a
<em>n
</em>-dimensional zero vector and
<em>0
492 <= i
< n
</em> holds
<em>z
</em><sub><em>i
</em></sub> <em>=
496 #include
<boost/numeric/ublas/vector.hpp
>
497 #include
<boost/numeric/ublas/io.hpp
>
500 using namespace boost::numeric::ublas;
501 zero_vector
<double
> v (
3);
502 std::cout
<< v
<< std::endl;
506 <p>Defined in the header vector.hpp.
</p>
507 <h4>Template parameters
</h4>
508 <table border=
"1" summary=
"parameters">
516 <td><code>T
</code></td>
517 <td>The type of object stored in the vector.
</td>
518 <td><code>int
</code></td>
521 <td><code>ALLOC
</code></td>
522 <td>An STL Allocator for size_type and difference_type.
</td>
523 <td>std::allocator
</td>
528 <p><a href=
"container_concept.html#vector">Vector
</a> .
</p>
529 <h4>Type requirements
</h4>
530 <p>None, except for those imposed by the requirements of
531 <a href=
"container_concept.html#vector">Vector
</a> .
</p>
532 <h4>Public base classes
</h4>
533 <p><code>vector_container
<zero_vector
<T
> ></code></p>
535 <table border=
"1" summary=
"members">
542 <td><code>zero_vector ()
</code></td>
543 <td>Constructs a
<code>zero_vector
</code> that holds zero
547 <td><code>zero_vector (size_type size)
</code></td>
548 <td>Constructs a
<code>zero_vector
</code> that holds
549 <code>size
</code> elements.
</td>
552 <td><code>zero_vector (const zero_vector
&v)
</code></td>
553 <td>The copy constructor.
</td>
556 <td><code>void resize (size_type size, bool preserve =
558 <td>Resizes a
<code>zero_vector
</code> to hold
<code>size
</code>
559 elements. Therefore the existing elements of the
560 <code>zero_vector
</code> are always preseved.
</td>
563 <td><code>size_type size () const
</code></td>
564 <td>Returns the size of the
<code>zero_vector
</code>.
</td>
567 <td><code>const_reference operator () (size_type i)
569 <td>Returns the value of the
<code>i
</code>-th element.
</td>
572 <td><code>const_reference operator [] (size_type i)
574 <td>Returns the value of the
<code>i
</code>-th element.
</td>
577 <td><code>zero_vector
&operator = (const zero_vector
579 <td>The assignment operator.
</td>
582 <td><code>zero_vector
&assign_temporary (zero_vector
584 <td>Assigns a temporary. May change the zero vector
<code>v
</code>
588 <td><code>void swap (zero_vector
&v)
</code></td>
589 <td>Swaps the contents of the zero vectors.
</td>
592 <td><code>const_iterator begin () const
</code></td>
593 <td>Returns a
<code>const_iterator
</code> pointing to the beginning
594 of the
<code>zero_vector
</code>.
</td>
597 <td><code>const_iterator end () const
</code></td>
598 <td>Returns a
<code>const_iterator
</code> pointing to the end of
599 the
<code>zero_vector
</code>.
</td>
602 <td><code>const_reverse_iterator rbegin () const
</code></td>
603 <td>Returns a
<code>const_reverse_iterator
</code> pointing to the
604 beginning of the reversed
<code>zero_vector
</code>.
</td>
607 <td><code>const_reverse_iterator rend () const
</code></td>
608 <td>Returns a
<code>const_reverse_iterator
</code> pointing to the
609 end of the reversed
<code>zero_vector
</code>.
</td>
613 <h2><a name=
"scalar_vector"></a>Scalar Vector
</h2>
615 <p>The templated class
<code>scalar_vector
<T, ALLOC
></code>
616 represents scalar vectors. For a
<em>n
</em>-dimensional scalar
617 vector and
<em>0 <= i
< n
</em> holds
618 <em>z
</em><sub><em>i
</em></sub> <em>= s
</em>.
</p>
621 #include
<boost/numeric/ublas/vector.hpp
>
622 #include
<boost/numeric/ublas/io.hpp
>
625 using namespace boost::numeric::ublas;
626 scalar_vector
<double
> v (
3);
627 std::cout
<< v
<< std::endl;
631 <p>Defined in the header vector.hpp.
</p>
632 <h4>Template parameters
</h4>
633 <table border=
"1" summary=
"parameters">
641 <td><code>T
</code></td>
642 <td>The type of object stored in the vector.
</td>
643 <td><code>int
</code></td>
646 <td><code>ALLOC
</code></td>
647 <td>An STL Allocator for size_type and difference_type.
</td>
648 <td>std::allocator
</td>
653 <p><a href=
"container_concept.html#vector">Vector
</a> .
</p>
654 <h4>Type requirements
</h4>
655 <p>None, except for those imposed by the requirements of
656 <a href=
"container_concept.html#vector">Vector
</a> .
</p>
657 <h4>Public base classes
</h4>
658 <p><code>vector_container
<scalar_vector
<T
>
661 <table border=
"1" summary=
"members">
668 <td><code>scalar_vector ()
</code></td>
669 <td>Constructs a
<code>scalar_vector
</code> that holds zero
673 <td><code>scalar_vector (size_type size, const value_type
674 &value)
</code></td>
675 <td>Constructs a
<code>scalar_vector
</code> that holds
676 <code>size
</code> elements each of the specified value.
</td>
679 <td><code>scalar_vector (const scalar_vector
&v)
</code></td>
680 <td>The copy constructor.
</td>
683 <td><code>void resize (size_type size, bool preserve =
685 <td>Resizes a
<code>scalar_vector
</code> to hold
<code>size
</code>
686 elements. Therefore the existing elements of the
687 <code>scalar_vector
</code> are always preseved.
</td>
690 <td><code>size_type size () const
</code></td>
691 <td>Returns the size of the
<code>scalar_vector
</code>.
</td>
694 <td><code>const_reference operator () (size_type i)
696 <td>Returns the value of the
<code>i
</code>-th element.
</td>
699 <td><code>const_reference operator [] (size_type i)
701 <td>Returns the value of the
<code>i
</code>-th element.
</td>
704 <td><code>scalar_vector
&operator = (const scalar_vector
706 <td>The assignment operator.
</td>
709 <td><code>scalar_vector
&assign_temporary (scalar_vector
711 <td>Assigns a temporary. May change the scalar vector
712 <code>v
</code> .
</td>
715 <td><code>void swap (scalar_vector
&v)
</code></td>
716 <td>Swaps the contents of the scalar vectors.
</td>
719 <td><code>const_iterator begin () const
</code></td>
720 <td>Returns a
<code>const_iterator
</code> pointing to the beginning
721 of the
<code>scalar_vector
</code>.
</td>
724 <td><code>const_iterator end () const
</code></td>
725 <td>Returns a
<code>const_iterator
</code> pointing to the end of
726 the
<code>scalar_vector
</code>.
</td>
729 <td><code>const_reverse_iterator rbegin () const
</code></td>
730 <td>Returns a
<code>const_reverse_iterator
</code> pointing to the
731 beginning of the reversed
<code>scalar_vector
</code>.
</td>
734 <td><code>const_reverse_iterator rend () const
</code></td>
735 <td>Returns a
<code>const_reverse_iterator
</code> pointing to the
736 end of the reversed
<code>scalar_vector
</code>.
</td>
741 <p>Copyright (
©)
2000-
2002 Joerg Walter, Mathias Koch
<br />
742 Use, modification and distribution are subject to the
743 Boost Software License, Version
1.0.
744 (See accompanying file LICENSE_1_0.txt
745 or copy at
<a href=
"http://www.boost.org/LICENSE_1_0.txt">
746 http://www.boost.org/LICENSE_1_0.txt
749 <script type=
"text/javascript">