STL容器的接口

stack接口:

bool empty() const;
size_type size() const;
reference top(); //reference为引用
const_reference top() const;
void push(const value_type& x);
void pop();

stack默认使用deque来实现。通过stack<T,list<T>>,可以使用标准库的list来实现。

queue接口:

bool empty() const;
size_type size() const;
reference front(); //reference为引用
const_reference front() const;
reference back();
const_reference back() const;
void push(const value_type& x);
void pop();

queue默认使用deque来实现。通过queue<T, list<T>>,可以使用标准库的list来实现。

 deque接口:

iterator begin();
iterator end();
reference operator[](size_type n);
reference front();
reference back();
size_type size() const;
bool empty() const;

void push_back(const value_type& t);
void push_front(const value_type& t);
void pop_back();
void pop_front();
void clear();
iterator erase(iterator pos); //返回指向删除位置的迭代器,这个位置现在有元素填充
iterator erase(iterator first, iterator last); // 返回指向第一个删除位置的迭代器
iterator insert(iterator position, const value_type& x);//返回指向新加入元素的迭代器

 deque的迭代器设计很复杂。deque是分段连续的,其迭代器是指向每个分段的。然而,每个分段都有三个指针,分别是first\last\cur,指向分段第一个、最后一个和当前的元素。当对迭代器进行操作时,内部实现为对cur的操作,也就实现了对元素而不是分段的操作。可以用find函数来通过迭代器进行查找。

 list接口:

iterator begin();
iterator end();
//reference operator[](size_type n); list没有重载[]运算符
reference front();
reference back();
size_type size() const;
bool empty() const;

void push_back(const T& t);
void push_front(const T& t);
void pop_back();
void pop_front();
void clear();
void remove(const T& value); //将数值为value之前的所有元素移除
void unique(); //移除数值相同的连续元素,使其只剩一个。重点:数值相同且连续。
iterator erase(iterator pos); //返回指向删除位置的迭代器,这个位置现在有元素填充

void splice(iterator pos, list&x); //将x接合于Pos所指的位置之前,x必须不同于*this
void splice(iterator pos, list&, iterator i); //将i所指向的元素接合于position所指位置之前,pos
                                              //和x可以指向同一个list
void merge(list&x); //将x合并到*this身上,两个list的内容都必须经过递增排序
void reverse(); //将*this的内容逆向重置
void sort(); //list不能使用stl的sort算法。本函数使用快排实现。

iterator insert(iterator position, const value_type& x);//返回指向新加入元素的迭代器

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值