template<class T, class A = allocator<T> >
class vector {
public:
//类型定义
typedef A allocator_type;
typedef A::size_type size_type;
typedef A::difference_type difference_type;
typedef A::reference reference;
typedef A::const_reference const_reference;
typedef A::value_type value_type;
typedef T0 iterator;
typedef T1 const_iterator;
typedef reverse_iterator<iterator, value_type,
reference, A::pointer, difference_type>
reverse_iterator;
typedef reverse_iterator<const_iterator, value_type,
const_reference, A::const_pointer, difference_type>
const_reverse_iterator;
/*****************************************************/
//构造函数
explicit vector(const A& al = A());
explicit vector(size_type n, const T& v = T(), const A& al = A());
vector(const vector& x);
vector(const_iterator first, const_iterator last,
const A& al = A());
/*----------------------------------------------------*/
// 改变当前vecotr所分配空间的大小
void reserve(size_type n);
//获取vector最大容量
size_type capacity() const;
//获取vector初始迭代器
iterator begin();
//获取vector初始常迭代器,返回值类似于const型指针
const_iterator begin() const;
//获取vector尾后指针,最后一个元素的下一个额指针
iterator end();
//获取vector尾后常指针
iterator end() const;
//获取反向初始迭代器,最后一个元素的迭代器
reverse_iterator rbegin();
const_reverse_iterator rbegin() const;
//获取反向尾后迭代器,第一个元素的前一个
reverse_iterator rend();
const_reverse_iterator rend() const;
//重新分配vector容器大小
void resize(size_type n, T x = T());
//返回容器元素个数
size_type size() const;
//返回vector的最大长度
size_type max_size() const;
//如果vector为空返回true
bool empty() const;
//返回vector分配器
A get_allocator() const;
//返回指定位置元素的引用
reference at(size_type pos);
const_reference at(size_type pos) const;
//重载[]运算符
reference operator[](size_type pos);
const_reference operator[](size_type pos);
//返回首元素的引用
reference front();
const_reference front() const;
//返回尾元素的引用
reference back();
const_reference back() const;
//压入尾元素
void push_back(const T& x);
//弹出尾元素
void pop_back();
//清空原有元素,copy指定元素到vector
void assign(const_iterator first, const_iterator last);
//清空元素指定长度为n
void assign(size_type n, const T& x = T());
//在指定位置插入元素,或者元素组
iterator insert(iterator it, const T& x = T());
void insert(iterator it, size_type n, const T& x);
void insert(iterator it,
const_iterator first, const_iterator last);
//删除元素
iterator erase(iterator it);
iterator erase(iterator first, iterator last);
void clear();
void swap(vector x);
protected:
A allocator;
};
STL容器 - vector
最新推荐文章于 2024-04-17 15:00:32 发布