C/C++
文章平均质量分 58
爆椒火龙果
这个作者很懒,什么都没留下…
展开
-
C++中cin、cin.get、cin.getline用法辨析
1、cin--c++最常用输入函数,基本用法:cin>>表达式1>>表达式2...(1)、输入数字 例如:int a,b; cin>>a>>b; ......(2)、输入字符串 例如:char a[20]; cin>>a; cout 输入:abcdefg 输出:abcde原创 2016-03-24 18:47:36 · 1063 阅读 · 0 评论 -
C++内存对齐总结
首先说说为什么要对齐。为了提高效率,计算机从内存中取数据是按照一个固定长度的。以32位机为例,它每次取32个位,也就是4个字节(每字节8个位,计算机基础知识,别说不知道)。字节对齐有什么好处?以int型数据为例,如果它在内存中存放的位置按4字节对齐,也就是说1个int的数据全部落在计算机一次取数的区间内,那么只需要取一次就可以了。如果不对齐,很不巧,这个int数据刚好跨越了取数的边界,这样就需原创 2016-09-27 19:59:16 · 12804 阅读 · 1 评论 -
不调用库函数,实现strcpy
转自:http://blog.csdn.net/zzxian/article/details/6364745这是昨天淘宝一面的题目。 已经忘记当场写的函数是什么样子了,回来后想想写下了这样一段代码。[cpp] view plain copychar* strcpy(char *src, char *des){ if(src =转载 2016-03-23 17:26:48 · 4604 阅读 · 0 评论 -
两个有序数组合并成一个有序数组
百度2012实习生校园招聘笔试题数组al[0,mid-1]和al[mid,num-1]是各自有序的,对数组al[0,num-1]的两个子有序段进行merge,得到al[0,num-1]整体有序。要求空间复杂度为O(1)。注:al[i]元素是支持'1、用temp数组作为中间变量,保存两个有序子数组的合并结果数组,再复制回原数组。 空间复杂度O(N),时间复杂度O(m原创 2016-09-23 11:10:04 · 14263 阅读 · 1 评论 -
消除字符串中成对的括号
给定一个字符串,设计一个算法消除其中成对出现的括号,如果括号不成对,提示异常(error),例如:(1,(2,3),(4,(5,6),7))转化为1,2,3,4,5,6,7;例如(1,(2,3),(4,(5,6),7),提示error。思路:遍历原始数组,如果是左括号(“(”),设置括号标志位加1,如果是右括号(“)”),设置括号标志位减一,如果都不是,则把数字放入目的数组。最后通原创 2016-09-26 15:02:57 · 4513 阅读 · 0 评论 -
C++中const和static关键字的作用总结
static和const关键字的作用可以从两个方面回答:一是和类的成员函数或者成员变量相关,二是不属于类的函数或者变量。static关键字的作用:1、函数体内static变量的作用范围为该函数体,不同于auto变量,该变量的内存只被分配一次,因此,其值在下次调用的时候仍然维持原始值。2、在模块内的static全局变量可以被模块内的所有函数访问,但是不能被模块外的其他函数访问。3、在原创 2016-09-26 17:05:28 · 4937 阅读 · 1 评论 -
C++易错总结(持续更新)
1、以下涉及到内存管理的代码中,有错误的是:A:int *a=new int(12);//......free(a);B:int *ip=static_cast(malloc(sizeof(int)));*ip=10;//......delete ip;C;double *a=new double[1];//.....delete a;D;int *i原创 2016-09-26 19:37:43 · 2770 阅读 · 0 评论 -
c类型字符串的相关问题
1、指出下面代码有什么问题?void test(char *str1){ if(str1==NULL) { return; } char string[10]; if(strlen(str1)<=10) { strcpy(string,str1); }} 解:strlen(str1)2、分析下面代码有什么问题?void test(){ char s原创 2016-10-07 21:47:28 · 584 阅读 · 0 评论 -
C++中new/delete和malloc/free的区别
相同点:都是运行时申请动态内存和释放内存不同点:1、返回类型安全性:new返回对象类型的指针,类型严格与对象匹配,无需进行类型转换;malloc返回void*,需要强制转换为需要的类型2、内存分配失败的返回值:new动态内存分配失败时,会抛出bad_alloc异常,而malloc分配失败时会返回NULL3、是否需要指定内存大小:new运算符无需指定,编译器自动计算大小;malloc需要原创 2017-07-10 21:16:38 · 413 阅读 · 0 评论 -
error C4996: 'strcpy': This function or variable may be unsafe.解决方法
用VS2013写程序时,经常遇到error C4996: 'strcpy': This function or variable may be unsafe.之类的错误提示。网上查原因是因为这些C库函数很多没有内部检查,微软担心这些函数可能造成栈溢出,所以改写了这些函数,并在原来的函数名字后加上_s以和C库函数区分,比如strcpy->strcpy_s,fopen->fopen_s等。解决方法原创 2017-07-10 20:30:21 · 8698 阅读 · 2 评论 -
分治算法
对于,递归,一般大家都知道的就是那个求阶乘了。1*2*3*……*n。可以递归调用自己来求解。返回的return值不断减少,知道为1。这个一般都很好理解,问题是遇到了其他的问题,可不是这么简单的了。 对于,分治,分而治之,大问题分为小问题,然后再把小问题不断分为更小的问题,最后解决掉后,合并为原问题的解。其实分治就是运用了递归的,或者直接用递推来做。如果看来,要学好算法,递归多转载 2016-10-21 16:47:22 · 481 阅读 · 0 评论 -
C++文件操作
1.写入到文本文件必须包含头文件fsream,fstream中定义了一个用于ofstream类,但要事先声明自己的ofstream对象,必须指明命名空间std,需要将ofstream对象用open()方法和文件关联起来,使用完文件后用close()方法将其关闭。 程序实例:#include "stdafx.h"#include#include原创 2016-03-24 18:51:43 · 568 阅读 · 0 评论 -
C++动态内存分配
1、c++使用new来分配内存,而C语言中用malloc来分配内存。使用new来分配内存,程序员需要告诉new,需要为哪种数据类型分配内存,new将找到一个长度合适的内存块,并返回该内内存块的地址。例如:int *p=new int;则可以通过指针*p访问该整型变量。内存释放:使用delete释放内存,例如:delete p;释放上例分配的内存。2、使用new来创建动态数组原创 2016-03-24 18:48:34 · 870 阅读 · 0 评论 -
c++之指针作为函数参数传递的问题
转自:http://blog.csdn.net/fjb2080/article/details/5623427原创文章,转载请注明出处,谢谢!作者:清林,博客名:飞空静渡 博客地址:http://blog.csdn.net/fjb2080其实,对于C 或者C++ ,最难的一块地方估计就是指针了。指针是强大的,但也是很多人载在这里的地方。转载 2017-09-02 21:59:07 · 2907 阅读 · 1 评论