极客班STL第二周笔记

原创 2016年08月29日 11:27:31

几种典型容器

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更改对象成员

相关文章推荐

Geekban极客班C++STL与泛型编程 第二周

SetSet和multiset会根据特定的排序准则,自动将元素排序。 两者不同之处在于multiset允许元素重复,但是set不允许。Template第一个参数为任意类型T,第二个参数可有可无,定义...

极客班 C++(上)第二周学习笔记

Geekband 第二周学习笔记 class without pointer class with pointer

极客班STL与泛型编程 第一周学习笔记

泛型编程需注意的问题

Geekban极客班 第二周

构造函数 inline String::String(const char* cstr) { if (cstr) { //判断指针所指是否为空 m_data = ne...

Geekban极客班 C++ STL与泛型编程 第一周作业

特征Traits char szNames[]="abc"; std::size_t nLength=strlen(szNames); char* p=szNames; char* q=szNa...

C++面向对象高级开发_极客班_第二节课笔记

Big threeclass 有两种 ,一种是带指针的另一种是不带指针的。不带指针的类最典型的就是complex类,而带指针的最典型的就是string类。带指针的类有很多特性,其中最重要的就是big ...

极客班GeekBand C++第一周笔记

极客班GeekBand C++第一周笔记 防卫式声明 #ifndef _xxx_ #define _xxx_ (程序段) #endif 作用:不使用防卫式声明会反复include引入...

GeekBand-极客班-C++算法原理与实践-董飞-课程笔记(一)

GeekBand-极客班-C++算法原理与实践-董飞-课程笔记(一)算法入门和编程风格
  • lionpku
  • lionpku
  • 2015年07月20日 16:23
  • 1187

C++面向对象高级开发_极客班_第一节课笔记

1. C++编程简介学习目标:培养面向对象的观念,能写出正规的、大气的代码。1.1 C++分类 Object Base 基于对象 C++ with pointer : String C++ wit...

极客班C++设计模式第一周课堂笔记——设计原则

软件设计的目标是抵御变化,方法是提高复用性。8个重要的设计原则
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:极客班STL第二周笔记
举报原因:
原因补充:

(最多只允许输入30个字)