写代码是一种艺术,甚于蒙娜丽莎的微笑!

不拼搏,枉少年!

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

随笔分类 -  C++基础概念

C++中常见的概念知识。
摘要:本文中的部分问题摘选于《程序员面试宝典》,仅供个人学习,不用于任何商业用途。如果涉及版权问题,请联系tgylatitude@qq.com,本人会立即删除。 在某些问题中,加入了个人的理解和看法,并加以举例分析。如有错误,请指出! 1、C++中有了malloc/free,为什么还需要new/delet 阅读全文
posted @ 2016-05-06 16:47 RunningSnail 阅读(898) 评论(0) 推荐(0) 编辑

摘要:RTTI RTTI概念 RTTI(Run Time Type Identification)即通过运行时类型识别,程序能够使用基类的指针或引用来检查着这些指针或引用所指的对象的实际派生类型。 RTTI机制的产生 为什么会出现RTTI这一机制,这和C++语言本身有关系。和很多其他语言一样,C++是一种 阅读全文
posted @ 2016-04-24 16:17 RunningSnail 阅读(35991) 评论(3) 推荐(7) 编辑

摘要:原文链接:吴秦大神的C++对象模型。 何为C++对象模型? 何为C++对象模型? C++对象模型可以概括为以下2部分: 1、语言中直接支持面向对象程序设计的部分; 2、对于各种支持的底层实现机制。 语言中直接支持面向对象程序设计的部分,如构造函数、析构函数、虚函数、继承(单继承、多继承、虚继承)、多 阅读全文
posted @ 2016-04-24 11:39 RunningSnail 阅读(15131) 评论(2) 推荐(6) 编辑

摘要:可以使用srand()函数和rand()函数来产生随机数,其中srand()用来初始化随机数种子,rand()用来产生随机数。因为默认情况下随机数种子为1,而相同的随机数种子产生的随机数是一样的,失去了随机性的意义,所以为使每次得到的随机数不一样,用函数srand()初始化随机数种子。srand() 阅读全文
posted @ 2016-04-20 10:03 RunningSnail 阅读(570) 评论(0) 推荐(0) 编辑

摘要:自从当年明月的《明朝的那些事儿》爆红之后,以***那些事儿命名的文章便层出不穷。个人认为,这样的命名通俗但具有吸引力,容易接地气。哈哈,所以我也写了几篇以《***那些事儿》的文章。当然这篇文章也是为了保持队形,勿怪,看内容。 union是C++里面的一个关键字,说出来真的有些不好意思了,从大学学习C 阅读全文
posted @ 2016-04-09 21:45 RunningSnail 阅读(366) 评论(0) 推荐(0) 编辑

摘要:自从当年明月的《明朝的那些事儿》爆红之后,以***那些事儿命名的文章便层出不穷。个人认为,这样的命名通俗但具有吸引力,容易接地气。哈哈,所以我也写了几篇以《***那些事儿》的文章。当然这篇文章也是为了保持队形,勿怪,看内容。 先此声明下,本文章中有转载其他博友的文章,另有些网络资源。为尊重原创者,在 阅读全文
posted @ 2016-04-09 20:38 RunningSnail 阅读(541) 评论(0) 推荐(0) 编辑

摘要:鸽巢原理,也称抽屉原理。形象地说明一下:假设有n个鸽笼,有kn+1只鸽子,将所有的鸽子都放入笼子里,那么至少有一个笼子最少装有k+1只鸽子。 常见形式: 1、把多于n+1只鸽子放到n个笼子里,则至少有一个笼子里不少于两只鸽子。 2、把多于m*n只鸽子放到n个笼子里,则至少有一个笼子里有不少于m+1只 阅读全文
posted @ 2016-04-07 16:52 RunningSnail 阅读(3599) 评论(3) 推荐(0) 编辑

摘要:不久前在做某家公司的网测时遇到了关于数组指针和指针数组的问题,在复习C语言知识的时候简单看了一下,么有深究。所以在做题的时候,就只能靠猜测,不过后来还可以竟然也蒙对了。不过不能这样靠运气,万一某天不lucky了,就wrong answer了。还是要好好整理一下关于这方面的知识。 指针数组,从字面上理 阅读全文
posted @ 2016-03-29 15:03 RunningSnail 阅读(251) 评论(0) 推荐(0) 编辑

摘要:0-1背包问题 完全背包问题 多重背包问题是0-1背包问题和完全背包问题的综合体,可以描述如下:从n种物品向容积为V的背包装入,其中每种物品的体积为w,价值为v,数量为k,问装入的最大价值总和? 我们知道0-1背包问题是背包问题的基础,所以在解决多重背包问题的时候,要将多重背包向0-1背包上进行转换 阅读全文
posted @ 2016-03-28 16:09 RunningSnail 阅读(7897) 评论(0) 推荐(0) 编辑

摘要:对于背包问题在前面动态规划 - 0-1背包问题的算法优化已经讲到了关于0-1背包问题的解法,0-1背包问题是最基本的背包问题,它的特点是:每一件物品之多只能选择一件,即在背包中该物品数量只有0和1两种情况。 现在扩展一下,有一个容积为V的背包,同时有n种物品,每种物品均有无数多个,并且每种物品的都有 阅读全文
posted @ 2016-03-28 14:54 RunningSnail 阅读(14157) 评论(1) 推荐(0) 编辑

摘要:哈哈,这个标题有点搞笑了!笑一笑,十年少,希望大家都嗨心! 在C++中主要有四种强制类型转换:static_cast,reinterpret_cast,const_cast,dynamic_cast。 1)static_cast<T*>(a) 将地址a转换成类型T,T和a必须是指针、引用、基本数据类 阅读全文
posted @ 2016-03-21 21:03 RunningSnail 阅读(2093) 评论(0) 推荐(0) 编辑

摘要:typedef是C++中的一个十分重要的关键字,它有强大的功能和方法的用途。但是有时候,碰到一些用到typedef的地方却感到很奇怪了。 给个栗子尝尝: 很奇怪,你不觉得奇怪吗?反正我是信了,一个字-“怪”。 好,下面就讲一下C++中的一怪“typedef”。 typedef的定义是,为现有类型创建 阅读全文
posted @ 2016-03-21 14:31 RunningSnail 阅读(467) 评论(0) 推荐(0) 编辑

摘要:一、虚函数定义 在某基类中声明为virtual 并在一个或多个派生类中被重新定义的成员函数,用法格式为: virtual 函数返回类型 函数名(参数表) {函数体}; 虚函数是C++语言实现运行时多态的唯一手段,通过指向派生类的基类指针或引用,访问派生类中同名覆盖成员函数。 举个例子: 程序的输出为 阅读全文
posted @ 2016-03-03 21:27 RunningSnail 阅读(1734) 评论(0) 推荐(2) 编辑

摘要:文章出处:http://blog.csdn.net/linyt/article/details/6336762 虚函数是C++语言实现运行时多态的唯一手段,因此掌握C++虚函数也成为C++程序员是否合格的试金石。csdn网友所发的一篇博文《VC虚函数布局引发的问题》 从汇编角度分析了对象虚函数表的构 阅读全文
posted @ 2016-03-03 15:58 RunningSnail 阅读(728) 评论(0) 推荐(0) 编辑

摘要:1)位运算 位运算是指对转换成二进制的数字进行每一位上的0、1的运算,运算涉及到五种运算:与(&),或(|),异或(^),左移(<<),右移(>>)。 如下表所示: 0001 1001 << 2 = 0110 0100 1000 1010 << 3 = 0101 0000 0000 1010 >> 阅读全文
posted @ 2016-03-02 13:24 RunningSnail 阅读(3944) 评论(1) 推荐(0) 编辑

摘要:1.extern的作用 extern是C/C++语言中表明函数和全局变量作用范围(可见性)的关键字,可以告知编译器,用extern声明的函数和变量可以在本模块或其它模块中使用。 通常,在模块的头文件中对本模块提供给其它模块引用的函数和全局变量以关键字extern声明。例如,如果模块B欲引用该模块A中 阅读全文
posted @ 2016-03-01 09:36 RunningSnail 阅读(760) 评论(0) 推荐(0) 编辑

摘要:1.引用的概念 什么是引用,通俗地讲就是为某个目标变量起个别名(alias),对引用的操作和对目标变量的操作结果完全相同。 2.申明和使用引用”需要注意的问题 申明一个引用时,切记要对其进行初始化。引用声明完毕后,相当于目标变量有两个名称,即该目标变量的原名和引用名,不能再把该引用名作为其它变量的别 阅读全文
posted @ 2016-02-28 20:50 RunningSnail 阅读(473) 评论(0) 推荐(0) 编辑

摘要:一、qsort()函数 原型:_CRTIMP void __cdecl qsort (void*, size_t, size_t,int (*)(const void*, const void*)); 参数解释:1、待排序数组首地址;2、数组中待排序元素数量;3、各元素的占用空间的大小;4、指向函数 阅读全文
posted @ 2015-12-03 16:57 RunningSnail 阅读(3540) 评论(0) 推荐(1) 编辑

摘要:1、“想当然”导致的后果 今天犯了一个十分低级的错误,在对一个整型数组用memset进行初始化设置所有元素值为1.可是结果却大出所料,很意外啊!接着,我就做了代码测试。 输出结果如下: 这是啥情况呢? 2、知其然,而不知其所以然 带着这个疑问去查了相关资料,才明白自己真的是犯了一个很low的错误啊! 阅读全文
posted @ 2015-12-02 22:29 RunningSnail 阅读(1623) 评论(0) 推荐(0) 编辑

摘要:在输出浮点数时,C++默认的流输出数值有效位是6,所以不管数据是多少都只输出六位有效数字。可以采用setprecision(n)来控制输出流显示浮点数的数字个数。 I/O流常用控制符: 使用控制符时,需要加入头文件#include<iomanip>。C++有两种方法控制格式输出:1、用格式控制符;2 阅读全文
posted @ 2015-12-01 16:22 RunningSnail 阅读(3874) 评论(0) 推荐(1) 编辑