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

来源:互联网 发布:fifaonline3刷球员软件 编辑:程序博客网 时间:2024/05/14 10:41

在前面的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() stack 只 有 5 种 方法 push() pop() top() size() empty() queue 只 有 6 种 方法 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容器使用时机

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

0 0
原创粉丝点击