#include <stl_vector.h>
Inheritance diagram for vector:

|
|||||
|
Definition at line 47 of file stl_vector.h. Referenced by bit_vector::capacity. |
|
|||||
|
Definition at line 45 of file stl_vector.h. |
|
|||||
|
Definition at line 49 of file stl_vector.h. |
|
|||||
|
Definition at line 58 of file stl_vector.h. Referenced by vector< node *, Alloc >::rbegin, bit_vector::rbegin, vector< node *, Alloc >::rend, and bit_vector::rend. |
|
|||||
|
Definition at line 63 of file stl_vector.h. |
|
|||||
|
Definition at line 51 of file stl_vector.h. Referenced by bit_vector::initialize, bit_vector::insert, bit_vector::operator=, bit_vector::operator[], and bit_vector::resize. |
|
|||||
|
|||||
|
Definition at line 44 of file stl_vector.h. |
|
|||||
|
Definition at line 48 of file stl_vector.h. Referenced by vector< node *, Alloc >::back, vector< node *, Alloc >::front, and vector< node *, Alloc >::operator[]. |
|
|||||
|
Definition at line 60 of file stl_vector.h. Referenced by vector< node *, Alloc >::rbegin, bit_vector::rbegin, vector< node *, Alloc >::rend, and bit_vector::rend. |
|
|||||
|
|||||
|
Definition at line 43 of file stl_vector.h. |
|
|||||||||
|
Definition at line 97 of file stl_vector.h.
00097 : start(0), finish(0), end_of_storage(0) {} |
|
||||||||||||||||
|
Definition at line 98 of file stl_vector.h.
00098 { fill_initialize(n, value); }
|
|
||||||||||||||||
|
Definition at line 99 of file stl_vector.h.
00099 { fill_initialize(n, value); }
|
|
||||||||||||||||
|
Definition at line 100 of file stl_vector.h.
00100 { fill_initialize(n, value); }
|
|
||||||||||
|
Definition at line 101 of file stl_vector.h.
00101 { fill_initialize(n, T()); }
|
|
||||||||||
|
Definition at line 103 of file stl_vector.h.
|
|
||||||||||||||||
|
Definition at line 116 of file stl_vector.h.
00116 {
00117 size_type n = 0;
00118 distance(first, last, n);
00119 start = allocate_and_copy(n, first, last);
00120 finish = start + n;
00121 end_of_storage = finish;
00122 }
|
|
|||||||||
|
Definition at line 124 of file stl_vector.h.
00124 {
00125 destroy(start, finish);
00126 deallocate();
00127 }
|
|
||||||||||||||||||||
|
Definition at line 234 of file stl_vector.h. Referenced by operator=, vector< node *, Alloc >::reserve, and vector< node *, Alloc >::vector.
00235 {
00236 iterator result = data_allocator::allocate(n);
00237 __STL_TRY {
00238 uninitialized_copy(first, last, result);
00239 return result;
00240 }
00241 __STL_UNWIND(data_allocator::deallocate(result, n));
00242 }
|
|
||||||||||||||||
|
Definition at line 213 of file stl_vector.h. Referenced by vector< node *, Alloc >::fill_initialize.
00213 {
00214 iterator result = data_allocator::allocate(n);
00215 __STL_TRY {
00216 uninitialized_fill_n(result, n, x);
00217 return result;
00218 }
00219 __STL_UNWIND(data_allocator::deallocate(result, n));
00220 }
|
|
|||||||||
|
Definition at line 143 of file stl_vector.h.
00143 { return *(end() - 1); }
|
|
|||||||||
|
Definition at line 142 of file stl_vector.h.
00142 { return *(end() - 1); }
|
|
|||||||||
|
Definition at line 79 of file stl_vector.h.
00079 { return start; }
|
|
|||||||||
|
|||||||||
|
Definition at line 92 of file stl_vector.h. Referenced by bit_vector::insert, operator=, bit_vector::operator=, vector< node *, Alloc >::reserve, and bit_vector::reserve.
00092 { return size_type(end_of_storage - begin()); }
|
|
|||||||||
|
Definition at line 210 of file stl_vector.h. Referenced by hashtable::copy_from.
|
|
|||||||||
|
Definition at line 68 of file stl_vector.h. Referenced by insert, bit_vector::insert, insert_aux, bit_vector::insert_aux, operator=, bit_vector::operator=, vector< node *, Alloc >::reserve, bit_vector::reserve, bit_vector::~__BVECTOR, and vector< node *, Alloc >::~vector.
00068 {
00069 if (start) data_allocator::deallocate(start, end_of_storage - start);
00070 }
|
|
|||||||||
|
Definition at line 93 of file stl_vector.h.
|
|
|||||||||
|
Definition at line 81 of file stl_vector.h.
00081 { return finish; }
|
|
|||||||||
|
||||||||||||||||
|
Definition at line 197 of file stl_vector.h.
|
|
||||||||||
|
Definition at line 190 of file stl_vector.h. Referenced by vector< node *, Alloc >::clear, bit_vector::clear, vector< node *, Alloc >::resize, and bit_vector::resize.
|
|
||||||||||||||||
|
Definition at line 72 of file stl_vector.h. Referenced by vector< node *, Alloc >::vector.
00072 {
00073 start = allocate_and_fill(n, value);
00074 finish = start + n;
00075 end_of_storage = finish;
00076 }
|
|
|||||||||
|
Definition at line 141 of file stl_vector.h.
00141 { return *begin(); }
|
|
|||||||||
|
Definition at line 140 of file stl_vector.h.
00140 { return *begin(); }
|
|
||||||||||||||||||||
|
Definition at line 182 of file stl_vector.h.
|
|
||||||||||||||||||||
|
Definition at line 179 of file stl_vector.h.
|
|
||||||||||||||||||||
|
Definition at line 359 of file stl_vector.h. References __STL_TRY, copy_backward, deallocate, destroy, end_of_storage, fill, finish, iterator, max, size, size_type, start, uninitialized_copy, and uninitialized_fill_n.
00359 {
00360 if (n != 0) {
00361 if (size_type(end_of_storage - finish) >= n) {
00362 T x_copy = x;
00363 const size_type elems_after = finish - position;
00364 iterator old_finish = finish;
00365 if (elems_after > n) {
00366 uninitialized_copy(finish - n, finish, finish);
00367 finish += n;
00368 copy_backward(position, old_finish - n, old_finish);
00369 fill(position, position + n, x_copy);
00370 }
00371 else {
00372 uninitialized_fill_n(finish, n - elems_after, x_copy);
00373 finish += n - elems_after;
00374 uninitialized_copy(position, old_finish, finish);
00375 finish += elems_after;
00376 fill(position, old_finish, x_copy);
00377 }
00378 }
00379 else {
00380 const size_type old_size = size();
00381 const size_type len = old_size + max(old_size, n);
00382 iterator new_start = data_allocator::allocate(len);
00383 iterator new_finish = new_start;
00384 __STL_TRY {
00385 new_finish = uninitialized_copy(start, position, new_start);
00386 new_finish = uninitialized_fill_n(new_finish, n, x);
00387 new_finish = uninitialized_copy(position, finish, new_finish);
00388 }
00389 # ifdef __STL_USE_EXCEPTIONS
00390 catch(...) {
00391 destroy(new_start, new_finish);
00392 data_allocator::deallocate(new_start, len);
00393 throw;
00394 }
00395 # endif /* __STL_USE_EXCEPTIONS */
00396 destroy(start, finish);
00397 deallocate();
00398 start = new_start;
00399 finish = new_finish;
00400 end_of_storage = new_start + len;
00401 }
00402 }
00403 }
|
|
||||||||||||||||||||
|
Definition at line 473 of file stl_vector.h. References __STL_TRY, copy, copy_backward, deallocate, destroy, distance, end_of_storage, finish, iterator, max, size, size_type, start, and uninitialized_copy.
00475 {
00476 if (first != last) {
00477 size_type n = 0;
00478 distance(first, last, n);
00479 if (size_type(end_of_storage - finish) >= n) {
00480 const size_type elems_after = finish - position;
00481 iterator old_finish = finish;
00482 if (elems_after > n) {
00483 uninitialized_copy(finish - n, finish, finish);
00484 finish += n;
00485 copy_backward(position, old_finish - n, old_finish);
00486 copy(first, last, position);
00487 }
00488 else {
00489 uninitialized_copy(first + elems_after, last, finish);
00490 finish += n - elems_after;
00491 uninitialized_copy(position, old_finish, finish);
00492 finish += elems_after;
00493 copy(first, first + elems_after, position);
00494 }
00495 }
00496 else {
00497 const size_type old_size = size();
00498 const size_type len = old_size + max(old_size, n);
00499 iterator new_start = data_allocator::allocate(len);
00500 iterator new_finish = new_start;
00501 __STL_TRY {
00502 new_finish = uninitialized_copy(start, position, new_start);
00503 new_finish = uninitialized_copy(first, last, new_finish);
00504 new_finish = uninitialized_copy(position, finish, new_finish);
00505 }
00506 # ifdef __STL_USE_EXCEPTIONS
00507 catch(...) {
00508 destroy(new_start, new_finish);
00509 data_allocator::deallocate(new_start, len);
00510 throw;
00511 }
00512 # endif /* __STL_USE_EXCEPTIONS */
00513 destroy(start, finish);
00514 deallocate();
00515 start = new_start;
00516 finish = new_finish;
00517 end_of_storage = new_start + len;
00518 }
00519 }
00520 }
|
|
||||||||||
|
Definition at line 167 of file stl_vector.h.
00167 { return insert(position, T()); }
|
|
||||||||||||||||
|
Definition at line 157 of file stl_vector.h. Referenced by hashtable::copy_from, hashtable< Value, Value, HashFcn, identity< Value >, EqualKey, Alloc >::initialize_buckets, vector< node *, Alloc >::insert, bit_vector::insert, vector< node *, Alloc >::resize, and bit_vector::resize.
00157 {
00158 size_type n = position - begin();
00159 if (finish != end_of_storage && position == end()) {
00160 construct(finish, x);
00161 ++finish;
00162 }
00163 else
00164 insert_aux(position, x);
00165 return begin() + n;
00166 }
|
|
||||||||||||||||
|
Definition at line 323 of file stl_vector.h. References __STL_TRY, begin, construct, copy_backward, deallocate, destroy, end, end_of_storage, finish, iterator, size, size_type, start, and uninitialized_copy. Referenced by vector< node *, Alloc >::insert, bit_vector::insert, vector< node *, Alloc >::push_back, and bit_vector::push_back.
00323 {
00324 if (finish != end_of_storage) {
00325 construct(finish, *(finish - 1));
00326 ++finish;
00327 T x_copy = x;
00328 copy_backward(position, finish - 2, finish - 1);
00329 *position = x_copy;
00330 }
00331 else {
00332 const size_type old_size = size();
00333 const size_type len = old_size != 0 ? 2 * old_size : 1;
00334 iterator new_start = data_allocator::allocate(len);
00335 iterator new_finish = new_start;
00336 __STL_TRY {
00337 new_finish = uninitialized_copy(start, position, new_start);
00338 construct(new_finish, x);
00339 ++new_finish;
00340 new_finish = uninitialized_copy(position, finish, new_finish);
00341 }
00342
00343 # ifdef __STL_USE_EXCEPTIONS
00344 catch(...) {
00345 destroy(new_start, new_finish);
00346 data_allocator::deallocate(new_start, len);
00347 throw;
00348 }
00349 # endif /* __STL_USE_EXCEPTIONS */
00350 destroy(begin(), end());
00351 deallocate();
00352 start = new_start;
00353 finish = new_finish;
00354 end_of_storage = new_start + len;
00355 }
00356 }
|
|
|||||||||
|
Definition at line 91 of file stl_vector.h.
00091 { return size_type(-1) / sizeof(T); }
|
|
||||||||||
|
Definition at line 299 of file stl_vector.h. References allocate_and_copy, begin, capacity, copy, deallocate, destroy, end, end_of_storage, finish, iterator, size, start, and uninitialized_copy.
00299 {
00300 if (&x != this) {
00301 if (x.size() > capacity()) {
00302 iterator tmp = allocate_and_copy(x.end() - x.begin(),
00303 x.begin(), x.end());
00304 destroy(start, finish);
00305 deallocate();
00306 start = tmp;
00307 end_of_storage = start + (x.end() - x.begin());
00308 }
00309 else if (size() >= x.size()) {
00310 iterator i = copy(x.begin(), x.end(), begin());
00311 destroy(i, finish);
00312 }
00313 else {
00314 copy(x.begin(), x.begin() + size(), start);
00315 uninitialized_copy(x.begin() + size(), x.end(), finish);
00316 }
00317 finish = start + x.size();
00318 }
00319 return *this;
00320 }
|
|
||||||||||
|
Definition at line 95 of file stl_vector.h.
00095 { return *(begin() + n); }
|
|
||||||||||
|
Definition at line 94 of file stl_vector.h.
00094 { return *(begin() + n); }
|
|
|||||||||
|
Definition at line 186 of file stl_vector.h.
|
|
||||||||||
|
Definition at line 144 of file stl_vector.h.
00144 {
00145 if (finish != end_of_storage) {
00146 construct(finish, x);
00147 ++finish;
00148 }
00149 else
00150 insert_aux(end(), x);
00151 }
|
|
|||||||||
|
Definition at line 83 of file stl_vector.h.
00083 {
00084 return const_reverse_iterator(end());
00085 }
|
|
|||||||||
|
Definition at line 82 of file stl_vector.h.
00082 { return reverse_iterator(end()); }
|
|
|||||||||
|
Definition at line 87 of file stl_vector.h.
00087 {
00088 return const_reverse_iterator(begin());
00089 }
|
|
|||||||||
|
Definition at line 86 of file stl_vector.h.
00086 { return reverse_iterator(begin()); }
|
|
||||||||||
|
Definition at line 129 of file stl_vector.h. Referenced by hashtable::copy_from, and hashtable< Value, Value, HashFcn, identity< Value >, EqualKey, Alloc >::initialize_buckets.
00129 {
00130 if (capacity() < n) {
00131 const size_type old_size = size();
00132 iterator tmp = allocate_and_copy(n, start, finish);
00133 destroy(start, finish);
00134 deallocate();
00135 start = tmp;
00136 finish = tmp + old_size;
00137 end_of_storage = start + n;
00138 }
00139 }
|
|
||||||||||
|
Definition at line 209 of file stl_vector.h.
00209 { resize(new_size, T()); }
|
|
||||||||||||||||
|
Definition at line 203 of file stl_vector.h. Referenced by vector< node *, Alloc >::resize.
|
|
|||||||||
|
||||||||||
|
Definition at line 152 of file stl_vector.h. Referenced by hashtable::resize, and hashtable< Value, Value, HashFcn, identity< Value >, EqualKey, Alloc >::swap.
00152 {
00153 __STD::swap(start, x.start);
00154 __STD::swap(finish, x.finish);
00155 __STD::swap(end_of_storage, x.end_of_storage);
00156 }
|
|
|||||
|
|||||
|
|||||
|
Definition at line 64 of file stl_vector.h. Referenced by vector< node *, Alloc >::begin, vector< node *, Alloc >::deallocate, vector< node *, Alloc >::fill_initialize, insert, insert_aux, operator=, vector< node *, Alloc >::reserve, vector< node *, Alloc >::swap, vector< node *, Alloc >::vector, and vector< node *, Alloc >::~vector. |
| Documentation generated on Thu May 2 15:03:47 2002 |
Generated with doxygen 1.2.12 by Dimitri van Heesch , 1997-2001 |