C++学习
文章平均质量分 78
小肥羊的慢慢科研路
希望这里能见证我的慢慢科研路
展开
-
C++、C的区别
参考:https://www.douban.com/group/topic/22414944/参考:http://www.cnblogs.com/ckings/p/3632997.html继承关系是C->C++,C++是C的超集,C++完全向C兼容,C程序几乎不用修改即可在C++的编译器上运行,C++也称为带类的C,在C的基础上增加了许多面向对象的概念。虽然是C的扩展,但不意味着C功...原创 2018-07-23 11:09:54 · 173 阅读 · 0 评论 -
数据结构与算法汇总
常见数据结构线性数组、链表、队列、堆栈、块状数组(数组+链表)、哈希表、双端队列、位图(bitmap)树堆(大顶堆、小顶堆)、trie树(字母树或字典树)、后缀树、二叉排序/查找树、B+/B-、AVL树、Treap、红黑树、splay树、线段树、树状数组图图其他并查集常见算法基本思想:枚举、递归、分治、模拟、贪心、动态规划、剪枝、回溯 图算法:深度优先遍历与广度优...原创 2018-08-01 20:11:18 · 330 阅读 · 0 评论 -
两段代码共存于一个文件,编译时有选择地编译其中的一部分,如何实现
在源码中使用条件编译语句,然后在程序文件中定义宏的形式来选择需要的编译代码在源码中使用条件编译语句,然后在编译命令的命令中加入宏定义命令来实现选择编译。...转载 2018-08-09 21:54:12 · 2224 阅读 · 0 评论 -
在C++程序中调用被C编译器编译后的函数,为什么要加extern “C”
C++语言是一种面向对象编程语言,支持函数重载,而C语言是面向过程的编程语言,不支持函数重载,所以函数被C++编译后在哭中的名字与C语言的不同,如果声明一个C语言函数float f(int a, char b),C++的编译器就会将这个名字变成像_f_int_char之类的东西以支持函数重载,然而C语言编译器的库一般不执行该转换,所以它的内部名为_f,这样连接器将无法解释C++对函数f()的调用。...转载 2018-08-09 21:51:03 · 1996 阅读 · 0 评论 -
如何判断一段程序是由C编译程序还是由C++编译程序编译的
如果编译器在编译cpp文件,那么_cplusplus就会被定义,如果是一个C文件在被编译,那么_STDC_就会被定义。_STDC_是预定义宏,当它被定义后,编译器将按照ANSIC标准来编译C语言程序。如果要在C++编译器里使用通过C编译的目标文件,必需要通知C++编译器...转载 2018-08-09 21:11:24 · 1229 阅读 · 0 评论 -
编译型语言与解释型语言的区别是什么
编译型语言编译是指在应用源程序执行之前,就将程序源代码“翻译”成目标代码(机器语言),因此其目标程序可以脱离其语言环境独立执行,使用比较方便,效率较高。但应用程序一旦修改,必须先修改源代码,再重新编译生成新的目标文件(*.obj)才能执行,只有目标文件而没有源代码,修改很不方便。现在大多数的编程语言都是编译型的。编译程序将源程序翻译成目标程序后保存在另一个文件中,该目标程序可脱离编译程序直接在...转载 2018-08-09 21:05:41 · 3994 阅读 · 0 评论 -
编译和链接的区别是什么?
编译将预处理生成的文件,经过词法分析、语法分析、语义分析以及优化后编译成若干个目标模块。可以理解为将高级语言翻译为计算机可以理解的二进制代码,即机器语言。链接由链接程序将编译后形成的一组目标模块以及它们所需要的库函数链接在一起,形成一个完整的载入模型。链接主要解决模块间的相互引用问题。分为地址和空间分配,符号解析和重定位几个步骤。在编译阶段生成目标文件时,会暂时搁置那些外部引用,而这些...转载 2018-08-09 20:38:49 · 13571 阅读 · 0 评论 -
c/c++字符串处理大集合
转自:https://blog.csdn.net/wallwind/article/details/6827863参考:https://www.cnblogs.com/xFreedom/archive/2011/05/16/2048037.html在此列举c/c++字符串处理函数,希望对初学者有一定帮助cchar st[100];1. 字符串长度strlen(st);2...转载 2018-07-31 16:25:01 · 1228 阅读 · 0 评论 -
vector、array、数组、new创建的动态数组,你到底该用哪一个
参考:http://www.cnblogs.com/chhuach2005/p/3627011.html数组:底层数据类型,存放在栈中,其内存的分配和释放完全由系统自动完成,效率最高动态数组:程序员由new运算符创建的,存放在堆区,需要delete运算符人工释放,否则会造成内存泄露vector:存放在堆中,由STL库中程序负责内存的分配和释放,使用方便代码执行时间:vector &...原创 2018-07-25 15:42:12 · 1659 阅读 · 0 评论 -
STL简单介绍
参考:https://www.tianmaying.com/tutorial/cpp-stl-introduction定义STL(Standard Template Library)提供了一些常用的数据结构和算法的模板,1998年加入C++标准。STL中有三个重要的概念:容器:容纳各种数据类型的数据结构,是一系列的类模板。 迭代器:迭代器用来迭代地访问容器中的元素 算法:用来操作容...转载 2018-07-24 18:36:21 · 481 阅读 · 0 评论 -
构造函数和析构函数能否被继承
构造函数不能被继承参考:https://blog.csdn.net/maosong00/article/details/12012895构造方法是用来初始化类的对象,与父类的其他成员不同,他不能被子类继承(子类可以继承父类所有的成员变量和成员方法,但是不继承父类的构造方法)。因此,在创建子类对象时,为了初始化从父类继承来的数据成员,系统需要调用其父类的构造方法。如果没有显式的构造函数,...转载 2018-07-24 11:28:56 · 11767 阅读 · 0 评论 -
C++的三大特性:封装、继承和多态
参考:https://www.cnblogs.com/cxq0017/p/6490945.html封装所谓封装,就是将某些东西包装和隐藏起来,让外界无法直接使用,只能通过某些特定的方式才能访问。封装的目的是增强安全性和简化编程,使用者不低了解具体的实现细节,而只是通过外部接口以及特定的访问权限来使用类的成员。其中访问权限包括private、protected和public,private是私...原创 2018-07-24 09:31:13 · 280 阅读 · 0 评论 -
什么是内存泄露,如何避免内存泄露 C++
定义内存泄露(memory lock)是指由于疏忽或错误造成程序未能释放已经不再使用的内存的情况。进一步解释内存泄露其实并非指内存再物理上的小时,而是在应用程序分配某段内存后,由于涉及错误,死去了对该内存的控制,因而造成了内存的浪费。 一般常说的内存泄露是指堆内存的泄露,堆是动态分配内存的,并且可以分配使用很大的内存,使用不好会产生内存泄露,使用不好会产生内存泄露。频繁的使用mallo...原创 2018-06-29 21:01:08 · 3189 阅读 · 0 评论