极客班STL第二周笔记

几种典型容器

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更改对象成员
阅读更多
文章标签: C++
个人分类: 极客班课程
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭