C++ STL/ (10) 阶段小结--容器的共性以及使用场景

在前面的blog中,我们介绍了顺序容器(string,vector,deque,list,stack,queue)和关联容器(set,multiset,map,multimap)。本节,我们就来总结一下以上这些容器使用中的异同。


  • 顺序容器

    容器名称初始化赋值元素存取大小插入和删除扩展
    string默认 带参数 拷贝 运算符重载= /.assgin(){2种}[] /.at()size(),strlen(),empty()insert() erase() clear()拼接:+/append() 查找: find()/rfind() 替换:replace() 子串: substr() 比较: compare()
    vector默认 带参数 拷贝 运算符重载= /.assgin() {2种}[] /.at()size(),resize(),reserve(),capacity(),empty()push_back() pop_back() insert(){2种} erase(){2种} clear()
    deque默认 带参数 拷贝 运算符重载= /.assgin(){2种}[] /.at()size() resize() empty()push_front() pop_front() push_back() pop_back() insert(){2种} erase(){2种} clear()
    list默认 带参数 拷贝 运算符重载= /.assgin(){2种}只有迭代器,不能随机存取size() resize() empty()push_front() pop_front() push_back() pop_back() insert(){2种} erase(){2种} clear()
    stack5方法push() pop() top() size() empty()
    queue6方法push() pop() front() back() size() empty()

  • 关联型容器

    容器名称初始化赋值元素存取大小插入和删除查找
    set默认 拷贝 运算符重载=iterator且不能用iterator改变容器中的值size() empty()insert(ele) erase(){3种} clear()find() upper_bound() lower_bound() equal_range()
    multiset同上multiset允许set容器中元素值重复
    map默认 拷贝 运算符重载= []iterator且不能用iterator改变容器中的值size() empty()insert(pair<class T,class T> (xx,xx)) insert(make_pair(xx,xx)) insert(map<class T, class T>:: value_type(xx,xx)) erase(){3种} clear()
    multimap同上multimap允许map容器中key值重复

  • STL容器使用时机

    容器vectordequelistsetmultisetmapmultimap
    结构单端数组双端数组双向链表二叉树二叉树二叉树二叉树
    随机存取nonono对key:可no
    元素搜索很慢对key:快对key:快
    元素插入末端首尾两段任意位置----

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值