关闭

极客班STL第二周笔记

标签: C++
281人阅读 评论(0) 收藏 举报
分类:

几种典型容器

Vector
与array类似,在内存中的表现形式为一段地址连续的空间,是一个能存放任意型别的动态数组,有自动扩容的功能。
#include<vector>
int  main(){
  std::vector v;
}
Deque
是能够存放任意型别的双向队列,使用大块分配内存的内存管理方法。
#include<deque>
int main(){
  std::deque dq;
}
List
能够存放任意型别的双向链表。
#include<list>
int main(){
  std::list l;
}
Stack
即数据结构中所学的Stack栈,先进后出,只有一个出口。
#include<stack>
int main(){
  std::stack s;
}
Queue
队列,两个出口,前端增加新元素,后端移除已有元素。
#include<queue>
int main(){
  std::queue q;
}
Map and Multimap
Map是一种关联容器,存储对象为Key/Value pair,不允许有重复的Key 。map存储的对象必须是具备可排序性的,默认采取less定义排序行为,也可以通过仿函数自定义排序行为。
template<class _Kty,class _Ty,class _Pr=less<_Kty>,
         class _Alloc=allocator<pair<const _Kty,_Ty>>>
class map{…}
#include<map>
int main(){
  std::map<T1,T2,排序行为> q;
}

Multimap是类似于map的关联容器,允许Key重复。

std::multimap<int,Employee,ReverseId> mm(item,item+3);
mm.insert(std::make_pair(1,Employee(L"Peter")));
Set andMultiset
Set是一种关联容器,存储的对象本身既是Key又是Value,不允许有重复的Key , Set存储的对象必须是具备可排序性的。可以通过仿函数自定义排序行为,默认使用less定义排序行为(operator<)。
set
特别注意:①用作排序key的元素不允许进行改变。②set的实现方式不允许通过迭代器改变对象成员。
set更改对象成员
1
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:2130次
    • 积分:167
    • 等级:
    • 排名:千里之外
    • 原创:15篇
    • 转载:1篇
    • 译文:0篇
    • 评论:0条
    文章分类
    文章存档