自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 我的c++积累一部分

map只允许一个键对应一个值,而multimap是可以一个键对应多个值的。所以要得到multimap的全部的值,需要count得到个数,然后find找到相应的位置。set也只允许一个键对应一个值,而multiset是可以一个键对应多个值的。用作模板形参的名字不能再模板内重用。同一模板的声明和定义中,模板的形参的名字不必相同。减少处理头文件

2016-03-23 16:13:36 357

原创 递归函数

在代码的加测过程中,更多应该关注递归函数是否有结束的条件

2015-08-18 13:43:12 600

原创 条件判断的先后问题

如果语句有很多的条件判断,那么这个时候需要将复杂的条件判断放在后面,简单的放在前面,这样能提高程序的效率。例如:bool isExist(){ return true;}//使用if判断语句时需要将条件语句进行比较,比较复杂的放在后面,简单的放在前面int main(){ bool be = true; if(be && isExist()) {

2015-08-18 13:40:37 878

原创 类模板的三种友元声明

普通非模板类或友元声明,将友元关系授予明确指定的类或函数。类模板或函数模板的友元声明,授予对友元所有实例的访问权。值授予对类模板或函数模板的特定实例的访问权的友元声明。

2015-06-25 15:02:53 551

原创 对函数,文件度量因子的总结

函数的度量因子:函数的圈复杂度:初始值为1,只要遇到if,while,for等等语句复杂度加1,不论是分支还是内嵌都是加1.可执行的代码行:这个是源代码经过格式化之后的代码行,除去声明语句之后。所谓的格式例如:int a,b;处理之后就是int a;int b;基本的快个数:就是一段线性执行的代码,没有任何分析和goto,break,continue等非结构化语句。函数的循环总数:

2015-06-24 10:57:04 990

转载 Can't connect to MySQL server on localhost (10061)解决方法_Mysql

Can't connect to MySQL server on 'localhost' (10061)解决方法,需要的朋友可以参考下。首先检查MySQL 服务没有启动》如果没有启动,则要启动这个服务。 昨天,重起服务器后出现MySQL 'localhost' (10061)错误,开始以为是因为数据库链接打开过多,数据库资源耗尽的缘故,但是重启服务器以后,仍旧出现问题,于是在网上查找解决方

2015-06-16 14:09:28 699

原创 #include<string>和#include<string.h>的区别

string是c++的头文件,里面有一个string类。string.h是c语言的东西并没有类,所以也不能处理基于char*的字符串处理函数。

2015-06-15 10:20:56 4351

原创 c++STL的迭代器

针对迭代器的size_type:vector vec;vector::size_type实际上是一个unsigned int的类型,所以在对迭代器用下标访问的时候注意不要在它等于0的时候再进行--操作,因为这时候的--会使得该类型的数据成为很大的正数,导致死循环。

2015-06-11 11:07:11 466

转载 c++默认的构造函数中调用带参数的构造函数

#includeusing namespace std;class test{int m_i;test(int i) : m_i(i){cout}test(){test(0);}};这时候在创建test对象的时候是无法将成员变量m_i进行初始化的;只有在生成对象的时候才会调用初始化的表达式。例如:int mian(){test m;c

2015-06-10 16:30:08 892

原创 typedef函数指针

typedef对一个函数进行重命名,就是给一个函数类型去一个别名:typedef int (*pfunc)(int m, int n);int myfun(int m, int n){ return m + n; }int fun(){ pfunc = myfun; return pfunc(10, 10); }那么我们在使用这个函数的命名的时候就需要定一个函数的指针,然后用实体的函数对其进行赋

2015-05-28 16:48:55 443

原创 typedef的使用

c++:typedef在全局可以使用这样,所转换的类型便是一种类型了;如果在某个namespace中,那么需要声明namesapce使用,typedef也是一种类型;如果在某个类中或者是结构体中,那么typedef所以转换的类型也是可以使用的,需要用类型名::typedef名字访问;如果在某个namepspace中而且还是在某个类中,结构体中,那么需要先声明所在类或者结构体的,再使用类型名::ty

2015-05-28 16:11:01 407

原创 define宏

一个define宏在,程序预处理的阶段就会展开的,所以针对一个全局变量将其定义为宏,那么在函数处理过程会将宏展开,从而函数调用的就是全局变量。

2015-05-26 17:31:14 384

原创 把1-9这9个数字按从小到大的顺序排列 ,中间添上“+”和"-"可以计算的结果等于100的程序;

//本题的思路:要在“123456789”中添加加减号,那么可以将它们隔开可以是这样“ 1 2 3 4 5 6 7 8 9”,这样在他们的间隙就有空格(包括最前面的空格)9个,而这些空//格可以填写的内容只有3种情况:1.空,2.“+”3.“-”;这样算复杂度为3^9,用递归的方法实现并保存所有的集合。将得到的所有字符串进行分离并将分离的字符转化为数//字,加入到集合,最后集合相加和100比对(注

2015-05-21 16:25:16 21739

原创 函数模板

函数模板注意点:1.函数模板可以先声明再定义,和类模板是一样的。2.函数模板不存在偏特化的情况。和类模板不同的是类模板是存在偏特化的。3.函数的实例化和特化不一样,实例化是指实际调用函数模板,调用的同时也会将函数模板特化;而特化只是将函数进行特化,相当于多了一个函数定义。

2015-05-19 16:20:07 285

原创 namespace的使用

在使用namespace中,相同名字的namespace在不同的文件中,系统会默认为两个文件中的namespace是同一个命名空间。

2015-04-22 17:58:17 432

原创 throw抛出的类型

throw所抛出的类型是任意类型,但是只要抛出的类型和try,catch中的表达式的类型一致就可以了。

2015-04-08 10:46:44 3804

原创 调试信息;

如果你想在你的代码中加入某些调试信息,比如你想知道这个宏DEBUG被定义了没有,那么你可以:#ifdef DEBUG#pragma message("定义");#endif 这里使用了#pragma message()将信息打印到输出窗口如果你想知道更多的信息,关于代码的出错的信息那么你可以在代码中打印cerr

2015-03-29 15:25:01 289

原创 一般的struct tm和time_t之间的转换

通过struct tm转换为time_t的方法:time_t * mktime(struct tm);而time_t转换为struct tm的转换为:struct tm * localtime(time_t *time);

2015-03-26 13:49:21 1698

原创 从输入获取string,然后将连续的重复的最多的string和个数显示出来

思想:本题必须有两个变量必须定义(最多的string和个数-->1.maxString和2.int max),目的是保存下来,然后还有两个变量需要定义(当前的string和当前的重复个数-->curSting和cur),当然这样的话还不够,因为这个是连续的需要和前面的那个进行比较,那么就会有前一个string所以还有一个preString保存的是前一个。string curString,p

2015-03-21 14:44:30 668

原创 操作符的优先级统计

一般记住重要的:1.::最高的2. .和[]和()等级是一样的。3. --,++,后自加和后自减是高于前自加和前自减。4.--和++和一元操作符以及sizeof.5.*,/,%6.+,-其他的二元操作符。7.位>8.=,9.==和!=10.位与&11.位异或^12.位或|13.逻辑与&&14.逻辑或||15.条件操作?:16.赋值操作

2015-03-17 15:39:38 374

原创 用递归和while循环方式求出两个数的最大公因数

递归法: int GetCommonFactor(int a, int b){     if(b == 0)//将b=0作为结束的条件    {          return a;    }     int r = a%b;     a = b;     b = r;      GetCommonFactor(a, b);}while循环法:i

2015-03-17 14:58:19 947

原创 for循环中++i跟i++有区别吗

在for循环中总是有人疑惑为什么i++和++i没有任何的区别呢原因在此:因为for循环中,第二个;以后的语句是循环结束后执行的,相当于for(int i = 0; ifor(int i = 0; i{do something();i++;}而相反呢,while语句是判断完了之后进行循环之前就已经加过了。

2015-03-16 11:59:56 735

原创 前置操作(++)和后置操作(++)区别

通俗一点:前置是先加后用,后置是先用后加例:int i =100, j;j = ++i;//这时在分号之前是用的加过之后的结果来赋值即为101,所以j = 101;j = i++;//同样分号之前i并没有++,是先使用后即在分号之后才会加上去,所以j = 101;

2015-03-16 11:36:22 1046

原创 赋值=操作符和指针

1.赋值操作符“=”是具有右结合性的,不同于其他的操作符是左结合性。例如:int a;double  b;b = a = 3.5;//这时从a开始赋值所以a = 3;然后b = a,所以b = 3;a = b = 3.5;//这时从b 开始赋值所以 b = 3.5;然后 a = b,所以a = 3;2.指针的初始化指针必须要初始化,一般初始化的方式两种:第一:指针指向某

2015-03-16 11:05:24 345

原创 recv的返回值

在socket通信中,服务端和客户端连接好了以后就会有发送和接收,那么怎么在发送和接收过程知道连接是否正常呢,int recv(  __in          SOCKET s,  __out         char* buf,  __in          int len,  __in          int flags);函数的返回值就可以做到这一点,当返回值大

2015-03-15 12:57:41 383

原创 巧记操作符的优先级

只要记住:操作符是分为一元操作符,二元操作符,三元操作符,但是三元的比较少用,只需要记住一元操作符是优先级最高的,其次是乘和除,然后是二元操作符。

2015-03-13 11:07:34 527

原创 new/delete和对数组的重命名

一。在c++中常常会用到new来开辟堆中内存,但是又经常存在:int * p = new int;int *p = new int[size];这时存在new和new[],那他们的不同的是什么:1.用new开辟的内存只有单个,所以只需要用delete就可以直接删除点成为悬垂指针(是指曾经存放对象的内存,现在对象已经不存在了。悬垂指针常常会导致程序出错,而且很难检测出来,所以一般在删除了指针后,

2015-03-13 10:41:42 718

原创 SQL语句-实现对数据中两张表的访问

我的学习路

2015-03-13 10:23:00 352

空空如也

空空如也

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

TA关注的人

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