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

极客班STL第二周学习笔记

迭代器迭代器是指针的泛化(generalization of pointers)
  • s_tangbao
  • s_tangbao
  • 2016年08月29日 18:28
  • 293

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

极客班GeekBand C++第一周笔记 防卫式声明 #ifndef _xxx_ #define _xxx_ (程序段) #endif 作用:不使用防卫式声明会反复include引入...
  • syx121328147
  • syx121328147
  • 2016年05月13日 18:10
  • 140

Geekban极客班 第二周

构造函数 inline String::String(const char* cstr) { if (cstr) { //判断指针所指是否为空 m_data = ne...
  • syx121328147
  • syx121328147
  • 2016年05月21日 15:24
  • 211

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

Geekband 第二周学习笔记 class without pointer class with pointer
  • s_tangbao
  • s_tangbao
  • 2016年07月28日 10:07
  • 248

Geekban极客班 C++第五周

vptr和vtbl 只要类里带有虚函数,对象里就会多一个指针。 继承函数是继承函数的调用权,父类有虚函数则子类一定虚函数。 虚指针vptr指向虚表vtbl,虚表中存放虚函数指针。 c++编译器...
  • syx121328147
  • syx121328147
  • 2016年06月11日 21:15
  • 247

极客班GeekBand - C++第一次课程辅导 - 李建忠

极客班GeekBand - C++第一次课程辅导 - 李建忠极客班GeekBand - C第一次课程辅导 - 李建忠 栈Stack VS 堆heap 堆对象的空间分析 栈对象的空间分析 变量模型与使用...
  • lionpku
  • lionpku
  • 2015年07月25日 19:27
  • 1898

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

C++学习笔记第二周(极客班)  学习C++第二周了,总体来说还不错。  这一周学习了BigThree 拷贝构造,拷贝赋值,析构  当我们设计的类中的数据包含指针时我们就应该涵盖这三个函数如课程...
  • u012480501
  • u012480501
  • 2016年03月14日 21:30
  • 78

极客班STL第三次课程笔记——泛型算法

泛型算法由于这些都可在泛型函数库中查找到,各个函数的详细情况和具体实现过程略。...
  • s_tangbao
  • s_tangbao
  • 2016年09月05日 16:10
  • 218

(GeekBand或极客班)简单对象构造过程分析。

在继承和组合中,对象的构造顺序一般是由编译器默认处理,我们在写代码的时候非常容易忽略,为了记录和验证本课中对象的构造和析构顺序,现在讲我的过程记录下来。 1--单一继承的情况: #incl...
  • illidanee
  • illidanee
  • 2016年05月30日 07:27
  • 144

C++极客班笔记

1.      定义 sizeof是一个操作符(operator)。 其作用是返回一个对象或类型所占的内存字节数。 其返回值类型为size_t。(size_t在头文件stddef.h中定义,它依赖于编...
  • guoshenglong11
  • guoshenglong11
  • 2016年03月25日 09:22
  • 312
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:极客班STL第二周笔记
举报原因:
原因补充:

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