- 博客(13)
- 资源 (2)
- 收藏
- 关注
原创 23种设计模式总结之——创建型模式
创建型模式用来处理对象的创建过程,主要包含以下5种设计模式: 1,工厂方法模式(Factory Method Pattern)的用意是定义一个创建产品对象的工厂接口,将实际创建工作推迟到子类中。2,抽象工厂模式(Abstract Factory Pattern)的意图是提供一个创建一系列相关或者相互依赖的接口,而无需指定它们具体的类。3,建造者模式(Builder Pattern)的意图是将一个复...
2018-06-06 21:50:30
261
原创 STL常用容器用法之——Map和multimap
map/multimap的简介map是标准的关联式容器,一个map是一个键值对序列,即(key,value)对。它提供基于key的快速检索能力。map中key值是唯一的。集合中的元素按一定的顺序排列。元素插入过程是按排序规则插入,所以不能指定插入位置。map的具体实现采用红黑树变体的平衡二叉树的数据结构。在插入操作和删除操作上比vector快。map可以直接存取key所对应的val
2017-08-28 20:48:49
386
原创 STL常用容器用法之——Set和multiset
set/multiset的简介set是一个集合容器,其中所包含的元素是唯一的,集合中的元素按一定的顺序排列(默认从小到大排序)。元素插入过程是按排序规则插入,所以不能指定插入位置。set采用红黑树变体的数据结构实现,红黑树属于平衡二叉树。在插入操作和删除操作上比vector快。set不可以直接存取元素。(不可以使用at.(pos)与[]操作符)。multiset与set的区别:se
2017-08-27 19:22:26
431
原创 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
877
原创 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
488
原创 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
299
原创 STL常用容器用法之——Deque
Deque容器deque是“double-ended queue”的缩写,和vector一样都是STL的容器,deque是双端数组,而vector是单端的。deque在接口上和vector非常相似,在许多操作的地方可以直接替换。deque可以随机存取元素(支持索引值直接存取, 用[]操作符或at()方法)deque头部和尾部添加或移除元素都非常快速。但是在中部安插元素或移除
2017-08-25 19:29:38
253
原创 STL常用容器用法之——vector
Vector容器vector是将元素置于一个动态数组中加以管理的容器。vector尾部添加或移除元素非常快速。但是在中部或头部插入元素或移除元素比较费时。1、定义一个vector容器vector采用模板类实现,vector对象的默认构造形式vector vecT; vector vecInt; //一个存放int的vector容器。Class
2017-08-23 20:48:43
546
原创 函数指针的基本语法和回调函数
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
266
原创 C++操作符重载知识点
1、操作符重载的限制2、二元运算符重载重载“+”、“-”类运算符假设定义类: class Complex{};需要实现语句: Complex c3 = c1 + c2; //c1、c2为Complex对象操作符重载函数声明(类成员):Complex operator+(Complex &c2) //为什么函数参数使用引用,个人理解这样做的目的是在没有定义拷贝构造函数
2017-04-25 15:33:28
400
原创 c++中多态及其实现原理
1、多态的实现效果 2、多态实现的三个条件有继承、有虚函数(virtual)重写、有父类指针(引用)指向子类对象。3、多态的C++实现在基类中使用virtual定义虚函数,告诉编译器这个函数要支持多态;而不是根据指针类型判断如何调用;而是要根据引用或指针所绑定的对象的真实类型。一旦某个函数被声明为虚函数,则在所有派生类中它都是虚函数(不管有没有virtual)。
2017-04-19 17:18:48
1688
原创 c++引用相关知识点
1.引用的本质c++中,引用是一段连续内存空间的别名。引用对指针而言具有更好的可读性和实用性,引用在c++中的内部实现是一个常指针,即:Type& name 等价于Type* const name2.引用作为函数返回值(引用当左值)当函数返回值为引用的时候:不能成为其他引用的初始值不能作为左值使用3.指针引用class A(){ ...}
2017-03-31 17:24:00
345
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
886
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人