- 博客(13)
- 资源 (2)
- 收藏
- 关注
原创 23种设计模式总结之——创建型模式
创建型模式用来处理对象的创建过程,主要包含以下5种设计模式: 1,工厂方法模式(Factory Method Pattern)的用意是定义一个创建产品对象的工厂接口,将实际创建工作推迟到子类中。2,抽象工厂模式(Abstract Factory Pattern)的意图是提供一个创建一系列相关或者相互依赖的接口,而无需指定它们具体的类。3,建造者模式(Builder Pattern)的意图是将一个复...
2018-06-06 21:50:30
284
原创 STL常用容器用法之——Map和multimap
map/multimap的简介 map是标准的关联式容器,一个map是一个键值对序列,即(key,value)对。它提供基于key的快速检索能力。 map中key值是唯一的。集合中的元素按一定的顺序排列。元素插入过程是按排序规则插入,所以不能指定插入位置。 map的具体实现采用红黑树变体的平衡二叉树的数据结构。在插入操作和删除操作上比vector快。 map可以直接存取key所对应的val
2017-08-28 20:48:49
412
原创 STL常用容器用法之——Set和multiset
set/multiset的简介 set是一个集合容器,其中所包含的元素是唯一的,集合中的元素按一定的顺序排列(默认从小到大排序)。元素插入过程是按排序规则插入,所以不能指定插入位置。 set采用红黑树变体的数据结构实现,红黑树属于平衡二叉树。在插入操作和删除操作上比vector快。 set不可以直接存取元素。(不可以使用at.(pos)与[]操作符)。 multiset与set的区别:se
2017-08-27 19:22:26
478
原创 STL常用容器用法之——List
List简介 list是一个双向链表容器,可高效地进行插入删除元素。 list不可以随机存取元素,所以不支持at.(pos)函数与[]操作符。迭代器It++(ok) it+5(err) #include 1、list头尾的添加移除操作 list.push_back(elem); //在容器尾部加入一个元素 list.pop_back();
2017-08-26 19:24:12
943
原创 STL常用容器用法之——queue和priority_queue
Queue简介 queue是队列容器,是一种“先进先出”的容器。 queue是简单地装饰deque容器而成为另外的一种容器。 #include 1、queue的添加、删除、获取元素 queue.push(elem); //往队尾添加元素 queue.pop(); //从队头移除第一个元素 queue.back(); //返回最后一个元素 queue.fr
2017-08-26 19:07:57
511
原创 STL常用容器用法之——stack
Stack容器 stack是堆栈容器,是一种“先进后出”的容器。 stack是简单地装饰deque容器而成为另外的一种容器。 #include 1、栈的生命周期 stack s; //入栈 for (int i=0; i { s.push(i+1); } cout //出栈 while ( !s.empty()) { int tmp = s.t
2017-08-25 20:06:58
315
原创 STL常用容器用法之——Deque
Deque容器 deque是“double-ended queue”的缩写,和vector一样都是STL的容器,deque是双端数组,而vector是单端的。 deque在接口上和vector非常相似,在许多操作的地方可以直接替换。 deque可以随机存取元素(支持索引值直接存取, 用[]操作符或at()方法) deque头部和尾部添加或移除元素都非常快速。但是在中部安插元素或移除
2017-08-25 19:29:38
272
原创 STL常用容器用法之——vector
Vector容器 vector是将元素置于一个动态数组中加以管理的容器。 vector尾部添加或移除元素非常快速。但是在中部或头部插入元素或移除元素比较费时。 1、定义一个vector容器 vector采用模板类实现,vector对象的默认构造形式 vector vecT; vector vecInt; //一个存放int的vector容器。 Class
2017-08-23 20:48:43
566
原创 函数指针的基本语法和回调函数
1、函数指针语法 假设定义一个函数: int add(int a , int b) { return a+b; } 定义一个函数类型: typedef int (MyFuncType)(int a , int b); //定义了一个类型 MyFuncType *myPointerFunc = NULL;//定义了一个指针,指向某一种类的函数 myPoin
2017-07-21 22:11:22
288
原创 C++操作符重载知识点
1、操作符重载的限制 2、二元运算符重载 重载“+”、“-”类运算符 假设定义类: class Complex{}; 需要实现语句: Complex c3 = c1 + c2; //c1、c2为Complex对象 操作符重载函数声明(类成员):Complex operator+(Complex &c2) //为什么函数参数使用引用,个人理解这样做的目的是在没有定义拷贝构造函数
2017-04-25 15:33:28
420
原创 c++中多态及其实现原理
1、多态的实现效果 2、多态实现的三个条件 有继承、有虚函数(virtual)重写、有父类指针(引用)指向子类对象。 3、多态的C++实现 在基类中使用virtual定义虚函数,告诉编译器这个函数要支持多态;而不是根据指针类型判断如何调用;而是要根据引用或指针所绑定的对象的真实类型。 一旦某个函数被声明为虚函数,则在所有派生类中它都是虚函数(不管有没有virtual)。
2017-04-19 17:18:48
1711
原创 c++引用相关知识点
1.引用的本质 c++中,引用是一段连续内存空间的别名。 引用对指针而言具有更好的可读性和实用性,引用在c++中的内部实现是一个常指针,即: Type& name 等价于Type* const name 2.引用作为函数返回值(引用当左值) 当函数返回值为引用的时候: 不能成为其他引用的初始值 不能作为左值使用 3.指针引用 class A() { ... }
2017-03-31 17:24:00
366
1
原创 拷贝构造函数的调用时机
拷贝构造函数的调用有四种场景 假设定义了一个类A: class A{ public: A(const A& obj) //拷贝构造函数 {} }; 第一种copy构造函数调用: void main() { A a1; A a2 = a1;//调用copy构造函数 a2 = a1;//浅copy,不会调用copy构造函数 } 第二种copy构造函数的调
2017-03-28 18:58:19
911
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人