自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

转载 C++函数的返回引用

一、函数返回分以下几种情况:(1)主函数main的返回值:这里提及一点,返回0表示程序运行成功。(2)返回非引用类型:函数的返回值用于初始化在跳用函数出创建的临时对象。用函数返回值初始化临时对象与用实参初始化形参的方法是一样 的。如果返回类型不是引用,在调用函数的地方会将函数返回值复制给临时对象。且其返回值既可以是局部对象,也可以是求解表达式的结果。(3)返回引用:当函数返

2014-08-11 21:55:46 540

转载 海量数据处理算法—Bit-Map

1. Bit Map算法简介        来自于《编程珠玑》。所谓的Bit-map就是用一个bit位来标记某个元素对应的Value, 而Key即是该元素。由于采用了Bit为单位来存储数据,因此在存储空间方面,可以大大节省。2、 Bit Map的基本思想        我们先来看一个具体的例子,假设我们要对0-7内的5个元素(4,7,2,5,3)排序(这

2014-08-11 21:30:13 549

转载 C++里如何读写xls文件

文章转载自:http://blog.sina.com.cn/s/blog_6a6d5ba80100umhm.html具体如何使用可见“针对Excel表格文件操作的编程实现”于http://www.vckbase.com/document/viewdoc/?id=693只是下载的代码里有内存泄露现象。需要在个别地方加入e->Delete();//下面的代码是已经更正过的。

2014-08-05 11:30:22 3531

转载 内存的堆分配和栈分配 & 字符数组,字符指针,Sizeof总结

文章转载自:http://blog.csdn.net/SomnusLee1988/article/details/17251049堆和栈的区别一个由C/C++编译的程序占用的内存分为以下几个部分1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。2、堆区(heap) — 一般由程序员分配释放, 若程

2014-05-31 15:13:43 635

转载 彻底了解指针数组,数组指针,以及函数指针,以及堆中的分配规则

对象的堆内存分配,指针数组和数组指针有关内存的说明 ! 一:关于指针和堆的内存分配先来介绍一下指针 :指针一种类型,理论上来说它包含其他变量的地址,因此有的书上也叫它:地址变量。既然指针是一个类型,是类型就有大小,在达内的服务器上或者普通的PC机上,都是4个字节大小,里边只是存储了一个变量的地址而已。不管什么类型的指针,char * ,int * ,int (*

2014-05-31 15:07:03 590

转载 二维数组的指针 != 指针的指针

以前一直以为,二维数组的数组名就是一个指针的指针,直到今天一位同学问我一个相关的问题,我才醒悟。#include int main(){ int **p = new int[2][3]; return 0;}这段代码是编译不通过的,提示“无法从“int (*)[3]”转换为“int **”。虽然二维数组可以看成是一个平面结构(如下)a[0][0]

2014-05-31 14:33:33 558

转载 字符串匹配的KMP算法

1.kmp算法的原理:  本部分内容转自:http://www.ruanyifeng.com/blog/2013/05/Knuth%E2%80%93Morris%E2%80%93Pratt_algorithm.html  字符串匹配是计算机的基本任务之一。举例来说,有一个字符串"BBC ABCDAB ABCDABCDABDE",我想知道,里面是否包含另一个字符串"A

2014-05-30 15:52:19 566

原创 百度之星初赛第二轮第一题超时代码(可能还有错误)

百度之星初赛第二轮的第一题,题目如下

2014-05-25 16:57:57 687

原创 C++实现链式栈

这次也是瞎写着玩的,用的模板

2014-05-22 22:01:31 694

原创 C++链表实现

总结了一下最近学的东西,比如模板,链表。写的

2014-05-20 18:10:18 504

转载 二维数组和指针

二维数组和指针⑴ 用指针表示二维数组元素。要用指针处理二维数组,首先要解决从存储的角度对二维数组的认识问题。我们知道,一个二维数组在计算机中存储时,是按照先行后列的顺序依次存储的,当把每一行看作一个整体,即视为一个大的数组元素时,这个存储的二维数组也就变成了一个一维数组了。而每个大数组元素对应二维数组的一行,我们就称之为行数组元素,显然每个行数组元素都是一个一维数组下面我们讨论指针

2014-05-18 15:17:48 531

转载 经典分享 C++内存管理详解

C++内存管理。程序员们经常编写内存管理程序,往往提心吊胆。如果不想触雷,唯一的解决办法就是发现所有潜伏的地雷并且排除它们,躲是躲不了的。本文的内容比一般教科书的要深入得多,读者需细心阅读,做到真正地通晓内存管理。1、内存分配方式内存分配方式有三种:(1)从静态存储区域分配。内存在程序编译的时候就已经分配好,这块内存在程序的整个运行期间都存在。例如全局变量,stat

2014-05-17 14:21:57 501

转载 用GDB调试程序

文章转载自:用GDB调试程序GDB概述————GDB是GNU开源组织发布的一个强大的UNIX下的程序调试工具。或许,各位比较喜欢那种图形界面方式的,像VC、BCB等IDE的调试,但如果你是在UNIX平台下做软件,你会发现GDB这个调试工具有比VC、BCB的图形化调试器更强大的功能。所谓“寸有所长,尺有所短”就是这个道理。一般来说,GDB主要帮忙你完成下面四个方面

2014-05-17 00:10:30 554

原创 关于淘汰85%面试者的百度开发者面试题

题目描述:依序遍历0到100闭区间内所有的正整数,如果该数字能被3整除,则输出该数字及‘*’标记;如果该数字能被5整除,则输出该数字及‘#’标记;如果该数字既能被3整除又能被5整除,则输出该数字及‘*#’标记。忘了第一次从哪看见的了,刚才在  王奎MarkSaas博客里看见有人在讨论这个面试题。见到不少好的解题方法,记录下来。我的解法:

2014-05-16 21:47:24 685

转载 malloc/free与new/delete的区别

转载自:http://blog.csdn.net/hackbuteer1/article/details/6789164相同点:都可用于申请动态内存和释放内存不同点:(1)操作对象有所不同。malloc与free是C++/C 语言的标准库函数,new/delete 是C++的运算符。对于非内部数据类的对象而言,光用maloc/free 无法满足动态对象的要求。对象在创建的同

2014-05-16 20:53:38 511

转载 认识(大端--小端)端模式

端模式(Endian)的这个词出自Jonathan Swift书写的《格列佛游记》。这本书根据将鸡蛋敲开的方法不同将所有的人分为两类,从圆头开始将鸡蛋敲开的人被归为Big Endian,从尖头开始将鸡蛋敲开的人被归为Littile Endian。小人国的内战就源于吃鸡蛋时是究竟从大头(Big-Endian)敲开还是从小头(Little-Endian)敲开。在计算机业Big Endian和Lit

2014-05-16 20:50:58 847

转载 Windows下如何编译使用boost?

注:本文系转载,因为原文域名被csdn屏蔽。所以如需原文请自行谷歌标题。谢谢。最近在看boost::asio的东西,所以必须要用到boost库,下载了一个,所以与大家分享下boost库的编译方法。本方法应该适用于boost的任何版本,应该适用于任何C++编译器(VC6.0可能对某些库不支持,因为模板的原因),因为Linux没怎么用,所以只是分享下windows上的编译方法。

2014-05-11 11:14:08 754

转载 Windows下如何编译使用boost?

简介: 在c++中是没有正则表达式的,要想在c++中使用正则表达式,必须安装boost库,(目前,boost库还不是c++的标准库,相信在不久的将来,boost能和STL一样成为c++的标准,为万人造福)  一、boost库的下载       下载地址如下:http://sourceforge.net/projects/boost/files/boost/1.42.0/

2014-05-11 11:04:56 615

转载 stl容器学习总结

stl容器学习总结一 迭代器(iterator)迭代器:迭代器是类似指针的对象,STL算法利用它们对存储在容器中的对象序列进行遍历。5种类别:1、输入迭代器             2、输出迭代器             3、前向迭代器             4、双向迭代器             5、随机访问迭代器 常用的迭代器: istre

2014-05-10 15:08:36 447

转载 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

2014-05-10 15:07:20 506

转载 61条面向对象的设计原则

你不必严格遵守这些原则,违背它们也不会被处以宗教刑罚。但你应当把这些原则看成警铃,若违背了其中的一条,那么警铃就会响起。 -----Arthur J.Riel   (1)所有数据都应该隐藏在所在的类的内部。p13  (2)类的使用者必须依赖类的共有接口,但类不能依赖它的使用者。p15  (3)尽量减少类的协议中的消息。p16  (4)实现所有类都理解的最基本公有接口[例如,拷贝操作(深拷贝和浅拷贝

2014-05-10 14:48:37 439

转载 详细解说 STL 排序(Sort)

0 前言: STL,为什么你必须掌握对于程序员来说,数据结构是必修的一门课。从查找到排序,从链表到二叉树,几乎所有的算法和原理都需要理解,理解不了也要死记硬背下来。幸运的是这些理论都已经比较成熟,算法也基本固定下来,不需要你再去花费心思去考虑其算法原理,也不用再去验证其准确性。不过,等你开始应用计算机语言来工作的时候,你会发现,面对不同的需求你需要一次又一次去用代码重复实现这些已经成熟的算

2014-05-10 14:34:36 581

转载 堆栈,堆栈,堆和栈的区别

堆和栈的区别一、预备知识—程序的内存分配一个由c/C++编译的程序占用的内存分为以下几个部分1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表,呵呵。3、全局区(静态

2014-05-10 14:04:40 510

原创 关于typedef的用法总结

不管实在C还是C++代码中,typedef这个词都不少见,当然出现频率较高的还是在C代码中。typedef与#define有些相似,但更多的是不同,特别是在一些复杂的用法上,就完全不同了,看了网上一些C/C++的学习者的博客,其中有一篇关于typedef的总结还是很不错,由于总结的很好,我就不加修改的引用过来了,以下是引用的内容(红色部分是我自己写的内容)。用途一:定义一种类型的别

2014-05-10 11:44:09 441

转载 C++中虚函数工作原理和(虚)继承类的内存占用大小计算

转载请标明出处,原文地址:http://blog.csdn.net/hackbuteer1/article/details/7883531一、虚函数的工作原理      虚函数的实现要求对象携带额外的信息,这些信息用于在运行时确定该对象应该调用哪一个虚函数。典型情况下,这一信息具有一种被称为 vptr(virtual table pointer,虚函数表指针)的指针的形式。vptr 指向一

2014-05-10 11:20:09 480

转载 浅谈C++多态性

C++编程语言是一款应用广泛,支持多种程序设计的计算机编程语言。我们今天就会为大家详细介绍其中C++多态性的一些基本知识,以方便大家在学习过程中对此能够有一个充分的掌握。  多态性可以简单地概括为“一个接口,多种方法”,程序在运行时才决定调用的函数,它是面向对象编程领域的核心概念。多态(polymorphisn),字面意思多种形状。  C++多态性是通过虚函数来实现的,虚函数允许子类重新定

2014-05-10 11:13:21 392

原创 虚函数和纯虚函数区别及抽象类的介绍

首先:强调一个概念定义一个函数为虚函数,不代表函数为不被实现的函数。定义他为虚函数是为了允许用基类的指针来调用子类的这个函数。定义一个函数为纯虚函数,才代表函数没有被实现。定义纯虚函数是为了实现一个接口,起到一个规范的作用,规范继承这个类的程序员必须实现这个函数。1、简介假设我们有下面的类层次:

2014-05-10 11:02:19 884

转载 C++ 虚函数表解析

C++ 虚函数表解析 陈皓http://blog.csdn.net/haoel  前言 C++中的虚函数的作用主要是实现了多态的机制。关于多态,简而言之就是用父类型别的指针指向其子类的实例,然后通过父类的指针调用实际子类的成员函数。这种技术可以让父类的指针有“多种形态”,这是一种泛型技术。所谓泛型技术,说白了就是试图使用不变的代码来实现可变的算法。比如:模板技术,R

2014-05-09 22:18:46 324

原创 c++ part 5

构造函数和赋值控制构造函数和赋值控制成员不能继承。每个类都需要定义自己的这些成员。派生类构造函数除了初始化自己的数据成员,还要初始化基类。基类部分由基类的构造函数初始化。顺序:对于派生类对象的构造,会先执行其基类的构造函数,再构造自身另一部分。析构顺序相反。如果派生类继承自多个基类,基类的构造顺序应该为基类的定义顺序,而不是继承声明顺序。这点只是个人猜测,我没有试验。请不要作为参考。

2014-05-08 21:31:03 515

转载 IOS Socket使用大全 -将持续更新

第一部分、概念的理解1、什么是Socket?Socket又称之为“套接字”,是系统提供的用于网络通信的方法。它的实质并不是一种协议,没有规定计算机应当怎么样传递消息,只是给程序员提供了一个发送消息的接口,程序员使用这个接口提供的方法,发送与接收消息。Socket描述了一个IP、端口对。它简化了程序员的操作,知道对方的IP以及PORT就可以给对方发送消息,再由服务器端来处理发

2014-05-01 23:25:02 462

原创 算法的时间复杂度和空间复杂度(1)

常用的算法的时间复杂度和空间复杂度排序法最差时间分析平均时间复杂度稳定度空间复杂度冒泡排序O(n2)O(n2)稳定O(1)快速排序O(n2)O(n*log2n)不稳定O(log2n)~O(n)选择排序O(n2)

2014-05-01 14:35:57 569

原创 数据结构与算法绪论

数据结构与算法绪论数据结构一般分为  物理结构和逻辑结构逻辑结构一般主要分为:集合结构:结构中的元素之间只有一种关系,同属一个集合。线性结构:元素之间有一对一的关系。树形结构:一对多的关系(传销中的金字塔)。图形结构:多对多的关系。物理结构:存储方式:顺序存储:把元素存放在地址连续的存储单元中(数组)。物理关系与逻辑关系一致。链式存储:元素存放不连续(可以连

2014-04-30 09:18:44 448

转载 c++ RTTI(运行时类型识别)

通过RTTI,能够通过基类的指针或引用来检索其所指对象的实际类型。c++通过下面两个操作符提供RTTI。(1)typeid:返回指针或引用所指对象的实际类型。(2)dynamic_cast:将基类类型的指针或引用安全的转换为派生类型的指针或引用。对于带虚函数的类,在运行时执行RTTI操作符,返回动态类型信息;对于其他类型,在编译时执行RTTI,返回静态类型信息。当具

2014-04-29 20:54:08 426

原创 C++ part 4

转换与继承基类类型对象可以作为独立对象存在,也可以作为派生类对象一部分存在。所以,基类对象,可以是,也可以不是一个派生类对象的一部分。所以没有从基类引用/指针到派生类引用/指针的自动转换。派生类到基类的转换如果有一个派生类对象,可以使用它的地址对基类类型的指针进行赋值或初始化。对于引用类型同样适用。这个过程没有对对象的类型转换。而且可以使用派生类型对象对基类型对象赋值或初始化。可以

2014-04-29 20:33:27 528

原创 C++虚函数和纯虚函数的区别

1.虚函数和纯虚函数可以定义在同一个类中,含有纯虚函数的类被称为抽象类,而只含有虚函数的类不能被称为抽象类。2.虚函数可以被直接使用,也可以被子类重载以后,以多态的形式调用,而纯虚函数必须在子类中实现该函数才可以使用,因为纯虚函数在基类有声明而没有定义。3.虚函数和纯虚函数都可以在子类中被重载,以多态的形式被调用。4.虚函数和纯虚函数通常存在于抽象基类之中,被继承的子类重载

2014-04-29 17:30:43 493

转载 传值&传引用&传指针

相关概念c++三种传递参数方式传参数的值(称值传递,简称传值),传参数的地址(称地址传递,简称为传址),和引用传递(称为传引用),相应的函数传值调用,传址调用和传引用调用形参、实参 函数定义时参数表中的参数称为形式参数,简称形参;函数调用时参数表中的参数称为实际参数,简称实参。实参和形参之间的数据传递称为形实结合

2014-04-29 17:29:01 802

原创 编程挑战-高斯公式

高斯在上小学时发明了等差数列求和公式:1+2+..+100=5050。现在问题在于给你一个正整数n,问你他可以表示为多少种连续正整数之和?(自身也算)。输入格式:多组数据,每组数据一行,一个正整数n。 0输出格式:每组数据一行,包含一个正整数,表示结果。答题说明:输入样例5120输出样例:2

2014-04-29 14:31:38 851

原创 另类编辑距离 未通过代码

#include #include #include #include using namespace std;int main(){ vector vec1, vec2; vector ans; string str1 = " "; string str2 = " "; char ch1; int result = 0; while (cin >> str1 >>

2014-04-29 01:21:46 748

原创 任重道远

最近在持续的看C++ primer 将近2/3

2014-04-27 23:21:47 1040

原创 c++ part3

在一个base类中,访问标号

2014-04-27 23:01:17 517

空空如也

空空如也

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

TA关注的人

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