Arial Century Courier Georgia Tahoma Verdana Times New Roman
-
+
template ‹class InputIterator›
vector(InputIterator first, InputIterator last);
~vector;
vector‹bool, allocator›& operator=(const vector‹bool, allocator›& x);
void reserve(size_type n);
void swap(vector‹bool, allocator›& x);
// средства доступа (accessors):
iterator begin;
const_iterator begin const;
iterator end;
const_iterator end const;
reverse_iterator rbegin;
const_reverse_iterator rbegin;
reverse_iterator rend;
const_reverse_iterator rend;
size_type size const;
size_type max_size const;
size_type capacity const;
bool empty const;
reference operator[](size_type n);
const_reference operator[](size_type n) const;
reference front;
const_reference front const;
reference back;
const_reference back const;
//
вставка/стирание (insert/irase):
void push_back(const bool& x);
iterator insert(iterator position, const bool& x = bool);
void insert(iterator position, size_type n, const bool& x);
template ‹class InputIterator›
void insert(iterator position, InputIterator first, InputIterator last);
void pop_back;
void erase(iterator position);
void erase(iterator first, iterator last);
};
void swap(vector‹bool, allocator›::reference x, vector‹bool, allocator›::reference y);
bool operator==(const vector‹bool, allocator›& x, const vector‹bool, allocator›& y);
bool operator‹(const vector‹bool, allocator›& x, const vector‹bool, allocator›& y);
reference - класс, который имитирует поведение ссылок отдельного бита в vector‹bool›.
Ожидается, что каждое исполнение обеспечит определение vector‹bool› для всех поддерживаемых моделей памяти.
Сейчас невозможно шаблонизировать определение. То есть мы не можем написать:
template ‹template ‹class U› class Allocator = allocator›
class vector‹bool, Allocator› {/*… */};
Поэтому обеспечивается только vector‹bool, Allocator›.
list - вид последовательности, которая поддерживает двунаправленные итераторы и позволяет операции вставки и стирания с постоянным временем в любом месте последовательности, с управлением памятью, обрабатываемым автоматически. В отличие от векторов и двусторонних очередей, быстрый произвольный доступ к элементам списка не поддерживается, но многим алгоритмам, во всяком случае, только и нужен последовательный доступ.
template ‹class T, template ‹class U› class Allocator = allocator›
class list {
public:
typedef iterator;
typedef const_iterator;
typedef Allocator‹T›::pointer pointer;
typedef Allocator‹T›::reference reference;
typedef Allocator‹T›::const_reference const_reference;
typedef size_type;
typedef difference_type;
typedef Т value_type;
typedef reverse_iterator;
typedef const_reverse_iterator;
// размещение/удаление:
list
list(size_type n, const T& value = T);
template ‹class InputIterator›
list(InputIterator first, InputIterator last);
list(const list‹T, Allocator›& x);
~list;
list‹T, Allocator›& operator=(const list‹T,Allocator›& x);
void swap(list‹T, Allocator& x);
// средства доступа:
iterator begin;
const_iterator begin const;
iterator end;
const_iterator end const;
reverse_iterator rbegin;
const_reverse_iterator rbegin;
reverse_iterator rend;
const_reverse_iterator rend;
bool empty const;
size_type size const;
size_type max_size const;
reference front;
const_reference front const;
reference back;
const_reference back const;
// вставка/стирание:
void push_front(const T& x);
void push_back(const T& x);
iterator insert(iterator position, const T& x = T);
void insert(iterator position, size_type n, const T& x);
template ‹class InputIterator›
void insert(iterator position, InputIterator first, InputIterator last);
void pop_front;
void pop_back;
void erase(iterator position);
void erase(iterator first, iterator last);
// специальные модифицирующие операции cо списком: