C++函数的返回引用 一、函数返回分以下几种情况: (1)主函数main的返回值:这里提及一点,返回0表示程序运行成功。 (2)返回非引用类型:函数的返回值用于初始化在跳用函数出创建的临时对象。用函数返回值初始化临时对象与用实参初始化形参的方法是一样 的。如果返回类型不是引用,在调用函数的地方会将函数返回值复制给临时对象。且其返回值既可以是局部对象,也可以是求解表达式的结果。 (3)返回引用:当函数返
海量数据处理算法—Bit-Map 1. Bit Map算法简介 来自于《编程珠玑》。所谓的Bit-map就是用一个bit位来标记某个元素对应的Value, 而Key即是该元素。由于采用了Bit为单位来存储数据,因此在存储空间方面,可以大大节省。 2、 Bit Map的基本思想 我们先来看一个具体的例子,假设我们要对0-7内的5个元素(4,7,2,5,3)排序(这
C++里如何读写xls文件 文章转载自:http://blog.sina.com.cn/s/blog_6a6d5ba80100umhm.html 具体如何使用可见“针对Excel表格文件操作的编程实现”于 http://www.vckbase.com/document/viewdoc/?id=693 只是下载的代码里有内存泄露现象。需要在个别地方加入e->Delete();//下面的代码是已经更正过的。
内存的堆分配和栈分配 & 字符数组,字符指针,Sizeof总结 文章转载自:http://blog.csdn.net/SomnusLee1988/article/details/17251049 堆和栈的区别 一个由C/C++编译的程序占用的内存分为以下几个部分 1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其 操作方式类似于数据结构中的栈。 2、堆区(heap) — 一般由程序员分配释放, 若程
彻底了解指针数组,数组指针,以及函数指针,以及堆中的分配规则 对象的堆内存分配,指针数组和数组指针有关内存的说明 ! 一:关于指针和堆的内存分配 先来介绍一下指针 :指针一种类型,理论上来说它包含其他变量的地址,因此有的书上也叫它:地址变量。既然指针是一个类型,是类型就有大小,在达内的服务器上或者普通的PC机上,都是4个字节大小,里边只是存储了一个变量的地址而已。不管什么类型的指针,char * ,int * ,int (*
二维数组的指针 != 指针的指针 以前一直以为,二维数组的数组名就是一个指针的指针,直到今天一位同学问我一个相关的问题,我才醒悟。 #include int main() { int **p = new int[2][3]; return 0; } 这段代码是编译不通过的,提示“无法从“int (*)[3]”转换为“int **”。虽然二维数组可以看成是一个平面结构(如下) a[0][0]
字符串匹配的KMP算法 1.kmp算法的原理: 本部分内容转自:http://www.ruanyifeng.com/blog/2013/05/Knuth%E2%80%93Morris%E2%80%93Pratt_algorithm.html 字符串匹配是计算机的基本任务之一。 举例来说,有一个字符串"BBC ABCDAB ABCDABCDABDE",我想知道,里面是否包含另一个字符串"A
二维数组和指针 二维数组和指针⑴ 用指针表示二维数组元素。 要用指针处理二维数组,首先要解决从存储的角度对二维数组的认识问题。我们知道,一个二维数组在计算机中存储时,是按照先行后列的顺序依次存储的,当把每一行看作一个整体,即视为一个大的数组元素时,这个存储的二维数组也就变成了一个一维数组了。而每个大数组元素对应二维数组的一行,我们就称之为行数组元素,显然每个行数组元素都是一个一维数组 下面我们讨论指针
经典分享 C++内存管理详解 C++内存管理。程序员们经常编写内存管理程序,往往提心吊胆。如果不想触雷,唯一的解决办法就是发现所有潜伏的地雷并且排除它们,躲是躲不了的。本文的内容比一般教科书的要深入得多,读者需细心阅读,做到真正地通晓内存管理。 1、内存分配方式 内存分配方式有三种: (1)从静态存储区域分配。 内存在程序编译的时候就已经分配好,这块内存在程序的整个运行期间都存在。例如全局变量,stat
用GDB调试程序 文章转载自: 用GDB调试程序 GDB概述 ———— GDB是GNU开源组织发布的一个强大的UNIX下的程序调试工具。或许,各位比较喜欢那种图形界面方式的,像VC、BCB等IDE的调试,但如果你是在UNIX平台下做软件,你会发现GDB这个调试工具有比VC、BCB的图形化调试器更强大的功能。所谓“寸有所长,尺有所短”就是这个道理。 一般来说,GDB主要帮忙你完成下面四个方面
关于淘汰85%面试者的百度开发者面试题 题目描述: 依序遍历0到100闭区间内所有的正整数,如果该数字能被3整除,则输出该数字及‘*’标记;如果该数字能被5整除,则输出该数字及‘#’标记;如果该数字既能被3整除又能被5整除,则输出该数字及‘*#’标记。 忘了第一次从哪看见的了,刚才在 王奎MarkSaas博客里看见有人在讨论这个面试题。见到不少好的解题方法,记录下来。 我的解法:
malloc/free与new/delete的区别 转载自:http://blog.csdn.net/hackbuteer1/article/details/6789164 相同点:都可用于申请动态内存和释放内存 不同点: (1)操作对象有所不同。 malloc与free是C++/C 语言的标准库函数,new/delete 是C++的运算符。对于非内部数据类的对象而言,光用maloc/free 无法满足动态对象的要求。对象在创建的同
认识(大端--小端)端模式 端模式(Endian)的这个词出自Jonathan Swift书写的《格列佛游记》。这本书根据将鸡蛋敲开的方法不同将所有的人分为两类,从圆头开始将鸡蛋敲开的人被归为Big Endian,从尖头开始将鸡蛋敲开的人被归为Littile Endian。小人国的内战就源于吃鸡蛋时是究竟从大头(Big-Endian)敲开还是从小头(Little-Endian)敲开。在计算机业Big Endian和Lit
Windows下如何编译使用boost? 注:本文系转载,因为原文域名被csdn屏蔽。所以如需原文请自行谷歌标题。谢谢。 最近在看boost::asio的东西,所以必须要用到boost库,下载了一个,所以与大家分享下boost库的编译方法。 本方法应该适用于boost的任何版本,应该适用于任何C++编译器(VC6.0可能对某些库不支持,因为模板的原因),因为Linux没怎么用,所以只是分享下windows上的编译方法。
Windows下如何编译使用boost? 简介: 在c++中是没有正则表达式的,要想在c++中使用正则表达式,必须安装boost库,(目前,boost库还不是c++的标准库,相信在不久的将来,boost能和STL一样成为c++的标准,为万人造福) 一、boost库的下载 下载地址如下:http://sourceforge.net/projects/boost/files/boost/1.42.0/
stl容器学习总结 stl容器学习总结 一 迭代器(iterator) 迭代器: 迭代器是类似指针的对象,STL算法利用它们对存储在容器中的对象序列进行遍历。 5种类别:1、输入迭代器 2、输出迭代器 3、前向迭代器 4、双向迭代器 5、随机访问迭代器 常用的迭代器: istre
STL算法学习 STL算法学习,小结如下: 前提: 下载stl源码: http://www.sgi.com/tech/stl/download.html 打开网页: http://www.sgi.com/tech/stl/stl_index.html 一 函数对象: 因为很多的算法中多使用了函数对象 二元函数对象,V1和V2为输入,V3为结果 plus: t