自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(30)
  • 收藏
  • 关注

转载 C++ const_cast用法

const_cast是一种C++运算符,主要是用来去除复合类型中const和volatile属性(没有真正去除)。变量本身的const属性是不能去除的,要想修改变量的值,一般是去除指针(或引用)的const属性,再进行间接修改。用法:const_cast<type>(expression)通过const_cast运算符,也只能将const type*转换为type*,将const ty...

2018-07-06 14:43:13 3606

转载 map和unordered_map的差别和使用

内容会持续更新,有错误的地方欢迎指正,谢谢!map和unordered_map的差别还不知道或者搞不清unordered_map和map是什么的,请见: http://blog.csdn.net/billcyj/article/details/78065438需要引入的头文件不同map: #include < map > unordered_map: #include < uno...

2018-07-05 22:39:57 873

转载 C++ vector拷贝使用总结

主要有以下几种方法vector<int> list;list.push_back(1);list.push_back(2);一、初始化构造时拷贝vector<int> tem(list);这种拷贝,相当于复制了一份数据,list中的数据不变。二、assignvector<int> temlist;temlist.assign(list.begin(), list...

2018-07-05 21:48:24 9707

转载 vector删除元素后iterator失效

1. 对于关联容器(如map, set, multimap,multiset),删除当前的iterator,仅仅会使当前的iterator失效,只要在erase时,递增当前iterator即可。这是因为map之类的容器,使用了红黑树来实现,插入、删除一个结点不会对其他结点造成影响。for (iter = cont.begin(); it != cont.end();){   (*iter)-&gt...

2018-07-05 20:18:09 545

转载 虚函数与虚继承寻踪

https://www.cnblogs.com/fanzhidongyzby/archive/2013/01/14/2859064.html封装、继承、多态是面向对象语言的三大特性,熟悉C++的人对此应该不会有太多异议。C语言提供的struct,顶多算得上对数据的简单封装,而C++的引入把struct“升级”为class,使得面向对象的概念更加强大。继承机制解决了对象复用的问题,然而多重继承又会产...

2018-07-01 15:56:20 123

转载 数据库基础知识

1.已知关系R(F,G,H,I,J)及其上的函数相关性集合,F=(F->G,J->F,HJ->I),该关系的候选关键字是:正确答案: B   你的答案: D (错误)FJHJHIIJ如果一个 超关键字 去掉其中任何一个字段后不再能唯一地确定记录,则称它为“候选关键字”(Candidate Key)。候选关键字既能唯一地确定记录,它包含的字段又是最精炼的。也就是说候选关键字是最简单...

2018-07-01 14:31:00 292

转载 网络基础知识

Nagle算法的规则:(1)如果包长度达到MSS,则允许发送;(2)如果该包含有FIN,则允许发送;(3)设置了TCP_NODELAY选项,则允许发送;(4)未设置TCP_CORK选项时,若所有发出去的小数据包(包长度小于MSS)均被确认,则允许发送;(5)上述条件都未满足,但发生了超时(一般为200ms),则立即发送。Nagle算法只允许一个未被ACK的包存在于网络,它并不管包的大小,因此它事实...

2018-07-01 14:28:03 148

转载 C++ 深入理解 虚继承、多重继承和直接继承

通过类中类的普通继承,类的虚继承,类的多重继承,多个虚函数类的普通继承、虚继承与多重继承,几个交叉概念,详细的阐释了继承、虚函数与虚继承的基本概念,深入剖析了继承于虚继承的区别于联系。【Exp.001-虚继承】[cpp] view plain copy#include <stdio.h>    class A {  public:      int a;  };//sizeof(A)=...

2018-07-01 12:51:01 271

转载 TCP三次握手详解及释放连接过程

TCP三次握手详解及释放连接过程TCP在传输之前会进行三次沟通,一般称为“三次握手”,传完数据断开的时候要进行四次沟通,一般称为“四次挥手”。两个序号和三个标志位:  (1)序号:seq序号,占32位,用来标识从TCP源端向目的端发送的字节流,发起方发送数据时对此进行标记。  (2)确认序号:ack序号,占32位,只有ACK标志位为1时,确认序号字段才有效,ack=seq+1。  (3)标志位:共...

2018-07-01 12:03:08 213 1

转载 转:C++中const、volatile、mutable的用法

const修饰普通变量和指针const修饰变量,一般有两种写法:const TYPE value;TYPE const value;这两种写法在本质上是一样的。它的含义是:const修饰的类型为TYPE的变量value是不可变的。对于一个非指针的类型TYPE,无论怎么写,都是一个含义,即value值不可变。 例如:const int nValue;    //nValue是constint con...

2018-06-28 14:59:45 94

转载 互斥锁mutex的使用方法

在线程实际运行过程中,我们经常需要多个线程保持同步。这时可以用互斥锁来完成任务;互斥锁的使用过程中,主要有pthread_mutex_init,pthread_mutex_destory,pthread_mutex_lock,pthread_mutex_unlock这几个函数以完成锁的初始化,锁的销毁,上锁和释放锁操作。一,锁的创建    锁可以被动态或静态创建,可以用宏PTHREAD_MUTEX...

2018-06-28 14:51:15 556

转载 C++ explicit关键字详解

首先, C++中的explicit关键字只能用于修饰只有一个参数的类构造函数, 它的作用是表明该构造函数是显示的, 而非隐式的, 跟它相对应的另一个关键字是implicit, 意思是隐藏的,类构造函数默认情况下即声明为implicit(隐式).那么显示声明的构造函数和隐式声明的有什么区别呢? 我们来看下面的例子:class CxString  // 没有使用explicit关键字的类声明, 即默认...

2018-06-28 14:15:21 1382

转载 单例模式

你只要弄明白单例模式是如何实现的,就能从本质上理解这个问题;单例模式实现过程如下:首先,将该类的构造函数私有化(目的是禁止其他程序创建该类的对象);其次,在本类中自定义一个对象(既然禁止其他程序创建该类的对象,就要自己创建一个供程序使用,否则类就没法用,更不是单例);最后,提供一个可访问类自定义对象的类成员方法(对外提供该对象的访问方式)。直白的讲就是,你不能用该类在其他地方创建对象,而...

2018-06-28 10:13:52 74

转载 排序

1.堆排序把数字横着一层一层的写,然后从底层开始调整,选三个节点最大的当父节点,再用堆排序调整换位置的节点构造初始堆,则从最后一个非叶节点开始调整,调整过程如下:  20和16交换后导致16不满足堆的性质,因此需重新调整这样就得到了初始堆。即每次调整都是从父节点、左孩子节点、右孩子节点三者中选择最大者跟父节点进行交换(交换之后可能造成被交换的孩子节点不满足堆的性质,因此每次交换之后要重新对被交换的...

2018-06-27 19:56:26 117

转载 BFS和DFS算法原理(通俗易懂版)

DFS 算法思想:一直往深处走,直到找到解或者走不下去为止BFS算法DFS:使用栈保存未被检测的结点,结点按照深度优先的次序被访问并依次被压入栈中,并以相反的次序出栈进行新的检测。BFS:使用队列保存未被检测的结点。结点按照宽度优先的次序被访问和进出队列。框架:BFS:#include<cstdio>#include<cstring>#include<queue&gt...

2018-06-27 16:43:19 1610

原创 计算机基础知识试题

1.如果C类子网的掩码为255.255.255.240,则包含的子网位数、子网数目、每个子网中的主机数目正确的是( )A类地址第1字节为网络地址,其它3个字节为主机地址。 B类地址第1字节和第2字节为网络地址,其它2个字节为主机地址。 C类地址第1字节、第2字节和第3个字节为网络地址,第4个个字节为主机地址240就是1111 0000嘛,  整个子网掩码为:1111 1111.1111 1111....

2018-06-27 16:42:53 3411

转载 动态规划与贪心算法的区别 及标准动态规划写法

本来这次是该总结动态规划的,但在学习过程中发现动态规划和上一节的贪心算法有很大联系,而在算法设计过程中主要是对两种算法的选择,所以决定这次以对比的方式做总结,既可以更深入地了解动态规划,又可以对贪心算法有个新的认识。背景介绍:这两种算法都是选择性算法,就是从一个候选集合中选择适当的元素加入解集合。贪心算法的选择策略即贪心选择策略,通过对候选解按照一定的规则进行排序,然后就可以按照这个排好的顺序进行...

2018-06-27 16:42:05 2974 1

转载 平均周转时间各种算法

平均周转时间各种算法有5个批处理的作业(A、B、C、D和E)几乎同时到达一个计算中心,估计的运行时间分别为2、4、6、8、10分钟,它们的优先数分别为1、2、3、4、5(1为最低优先级)。对下面的每种调度算法,分别计算作业的平均周转时间。(1)最高优先级优先 (2)时间片轮转(时间片为2分钟) (3)FCFS(作业到达顺序为C,D,B,E,A) (4)短作业优先[分析] 本题是一个关于作业调度算法...

2018-06-26 15:49:11 40086 9

转载 重载、覆盖、隐藏的区别

只有参数相同,且有virtual才是覆盖,剩下参数不同或者没有virtual都是隐藏。学习过C++基础课程的人,对重载函数的概念相对熟悉一些,但是对覆盖和隐藏就相对陌生了,在编程技术的学习上,你会发现一个规律,很多知识点你都知道,但是一旦用起来,就常常出错,为什么呢?笔者一直都在探索这个问题。。   重载函数有哪些特性呢?   《高质量C++/C编程指南》已经清晰的列出了重载函数的特性:    (...

2018-06-26 15:13:32 238

转载 哈夫曼树

什么是哈夫曼树?让我们先举一个例子。判定树:        在很多问题的处理过程中,需要进行大量的条件判断,这些判断结构的设计直接影响着程序的执行效率。例如,编制一个程序,将百分制转换成五个等级输出。大家可能认为这个程序很简单,并且很快就可以用下列形式编写出来: [cpp] view plain copyif(score<60)      cout<<"Bad"<<e...

2018-06-26 14:58:18 475

转载 C++中引用传递与指针传递的区别

精简版:指针:变量,独立,可变,可空,替身,无类型检查;引用:别名,依赖,不变,非空,本体,有类型检查;完整版:1. 概念  指针从本质上讲是一个变量,变量的值是另一个变量的地址,指针在逻辑上是独立的,它可以被改变的,包括指针变量的值(所指向的地址)和指针变量的值对应的内存中的数据(所指向地址中所存放的数据)。  引用从本质上讲是一个别名,是另一个变量的同义词,它在逻辑上不是独立的,它的存在具有依...

2018-06-25 19:16:40 31941 16

转载 详细图解哈夫曼Huffman编码树

1 引言  哈夫曼(Huffman)编码算法是基于二叉树构建编码压缩结构的,它是数据压缩中经典的一种算法。算法根据文本字符出现的频率,重新对字符进行编码。因为为了缩短编码的长度,我们自然希望频率越高的词,编码越短,这样最终才能最大化压缩存储文本数据的空间。   假设现在我们要对下面这句歌词“we will we will r u”进行压缩。我们可以想象,如果是使用ASCII码对这句话编码结果...

2018-06-25 16:39:14 2615

转载 C++选择

1.结构化程序由三种基本结构组成顺序结构:顺序结构是一种线性、有序的结构,它依次执行各语句模块。循环结构:循环结构是重复执行一个或几个模块,直到满足某一条件为止。选择结构:选择结构是根据条件成立与否选择程序执行的通路。2.   int a=1,b=0,c=-1,d=0;   d=++a||++b&&++c; 运算符优先级 && 高于||,从左到右   d=13.me...

2018-06-25 16:30:10 1066

转载 操作系统之页面置换算法

操作系统之页面置换算法下面原理来源:http://c.biancheng.net/cpp/html/2614.html地址映射过程中,若在页面中发现所要访问的页面不在内存中,则产生缺页中断。当发生缺页中断时,如果操作系统内存中没有空闲页面,则操作系统必须在内存选择一个页面将其移出内存,以便为即将调入的页面让出空间。而用来选择淘汰哪一页的规则叫做页面置换算法。1.最佳置换算法(OPT)(理想置换算法...

2018-06-25 16:11:29 645

转载 背包问题

一、01背包有N件物品和一个容量为V的背包。第i件物品的价格(即体积,下同)是w[i],价值是c[i]。求解将哪些物品装入背包可使这些物品的费用总和不超过背包容量,且价值总和最大。这是最基础的背包问题,总的来说就是:选还是不选,这是个问题<( ̄ˇ ̄)/相当于用f[i][j]表示前i个物品装入容量为v的背包中所可以获得的最大价值。对于一个物品,只有两种情况  情况一: 第i...

2018-06-25 11:22:46 101

转载 unorder_map 基本操作

map和unordered_map的差别还不知道或者搞不清unordered_map和map是什么的,请见: http://blog.csdn.net/billcyj/article/details/78065438需要引入的头文件不同map: #include < map > unordered_map: #include < unordered_map >内部实现机理不...

2018-06-24 20:30:25 5387

转载 全面总结sizeof的用法

一、前言编译环境是vs2010(32位)。[cpp] view plain copy<span style="font-size:18px;">#include<iostream>      #include<stdio.h>      #include<string.h>  using namespace std;  typedef struct ...

2018-06-23 22:12:38 964

转载 C++点滴----关于类常成员函数

关于C++中,类的常成员函数声明样式为:   返回类型 <类标识符::>函数名称(参数表) const一些说明:1、const是函数声明的一部分,在函数的实现部分也需要加上const2、const关键字可以重载函数名相同但是未加const关键字的函数3、常成员函数不能用来更新类的成员变量,也不能调用类中未用const修饰的成员函数,只能调用常成员函数。即常成员函数不能更改类中的成员状态...

2018-06-23 22:11:22 422

转载 70. Climbing Stairs

假设梯子有n层,那么如何爬到第n层呢,因为每次只能爬1或2步,那么爬到第n层的方法要么是从第n-1层一步上来的,要不就是从n-2层2步上来的,所以递推公式非常容易的就得出了:dp[n] = dp[n-1] + dp[n-2]。 由于斐波那契额数列的求解可以用递归,所以我最先尝试了递归,拿到OJ上运行,显示Time Limit Exceeded,就是说运行时间超了,因为递归计算了很多分支,效率很低,...

2018-03-18 19:44:22 94

原创 58. Lengthof Last Word

58. Lengthof Last WordGiven a string s consistsof upper/lower-case alphabets and empty space characters ' ', return the length of last word in the string.If the last word does not exist, return0.Note:...

2018-03-18 19:31:59 81

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除