随笔分类 -  C++

摘要:算法的稳定性:如果待排序的两个元素Ri,Rj,其对应的关键字keyi=keyj,且在排序前Ri在Rj的前面,如果排序后Ri还在Rj的前面,则称这种排序算法是稳定的,否则称排序算法是不稳定的。 内部排序和外部排序:内部排序是指在排序期间,元素全部存放在内存中的排序。外部排序是指排序期间元素无法全部同时 阅读全文
posted @ 2019-07-26 15:54 浪里飞 阅读(1586) 评论(0) 推荐(1)
摘要:算法思想: 数独游戏的规则: 每一行都用到1、2、3、4、5、6、7、8、9位置不限; 每一列都用到1、2、3、4、5、6、7、8、9位置不限; 每3×3的格子(共九个这样的格子)都用到1、2、3、4、5、6、7、8、9位置不限。 游戏的过程就是用1、2、3、4、5、6、7、8、9填充空白,并要求满 阅读全文
posted @ 2019-07-19 22:10 浪里飞 阅读(1148) 评论(0) 推荐(0)
摘要:算法思想: 哈希表 什么是哈希表 在前面讨论的各种结构(线性表、树等)中,记录在结构中的相对位置是随机的,和记录的关键字之间不存在确定的关系,因此,在结构中查找记录时需进行一系列和关键字的比较。这一类查找方法建立在“比较”的基础上。 在顺序查找时,比较的结果为“="与“!=”两种可能; 在折半查找、 阅读全文
posted @ 2019-07-18 10:32 浪里飞 阅读(8849) 评论(1) 推荐(0)
摘要:算法思想 二叉搜索树(又称二叉查找树或二叉排序树)BST树 二叉查找树 二叉查找树,也称二叉搜索树,或二叉排序树。其定义也比较简单,要么是一颗空树,要么就是具有如下性质的二叉树: (1)若任意节点的左子树不空,则左子树上所有结点的值均小于它的根结点的值; (2) 若任意节点的右子树不空,则右子树上所 阅读全文
posted @ 2019-07-17 15:18 浪里飞 阅读(1983) 评论(0) 推荐(0)
摘要:目录树 1.继承 1.1 基类成员在派生类中的访问属性 1.2继承时导致的二义性 1.3 多基继承 2.虚函数的多态 2.1虚函数的定义 2.2派生类中可以根据需要对虚函数进行重定义 2.3 虚函数的访问 2.4哪些函数不能定义为虚函数 2.5虚函数表指针(vptr)和虚基类表指针(bptr) 2. 阅读全文
posted @ 2018-12-24 21:26 浪里飞 阅读(2724) 评论(0) 推荐(0)
摘要:介绍目录: 1.类成员 1.1 成员函数 1.2 构造函数 1.2.1 对构造函数的理解 1.2.2成员初始化列表 1.2.3必须使用成员初始化列表的几种情况 1.2.4对于拷贝构造函数的参数是一个引用的理解 1.2.5对深拷贝和浅拷贝的理解 1.3析构函数 1.3.1 单继承 1.3.2 多继承 阅读全文
posted @ 2018-12-21 22:37 浪里飞 阅读(1225) 评论(0) 推荐(0)
摘要:1.指针 typedef说明一种新类型名,来代替已有类型名。 a.案例:typedef char* String_t和#define String_d char *这两句在使用上的区别? 1)前者声明一个类型的别名,在编译时处理,有类型检查。后者是一个简单的替换,在预编译时处理,无类型检查。 2)S 阅读全文
posted @ 2018-12-20 15:34 浪里飞 阅读(1375) 评论(0) 推荐(0)
摘要:1.参数传递 1)函数调用时,c++中有三种传递方法:值传递、指针传递、引用传递。 给函数传递参数,遵循变量初始化规则。非引用类型的形参一相应的实参的副本初始化。对(非引用)形参的任何修改仅作用域局部副本,并不影响实参本身。 为了避免传递副本的开销,可将形参指定为引用类型。对引用形参的任何修改会直接 阅读全文
posted @ 2018-12-19 11:40 浪里飞 阅读(1348) 评论(0) 推荐(0)
摘要:C++11特性划分为七大类,分别是: 1.保持语言的稳定性和兼容性 2.更倾向于通用的而不是特殊化的手段来实现特性 3.专家新手都支持 4.增强类型的安全性 5.增强性能和操作硬件的能力 6.开发能够改变人们思维方式的特性 7.融入编程现实 1、保持语言的稳定性和兼容性 (1)新增关键字 align 阅读全文
posted @ 2018-11-28 22:21 浪里飞 阅读(1110) 评论(0) 推荐(0)
摘要:1.set容器的理解 所有元素都会根据元素的键值自动排序,set元素的键值就是实值,实值就是键值。set不允许两个元素有相同的键值。(set的元素不像map那样可以同时拥有实值(value)和键值(key))。 set成员函数列表如下: 1. begin()--返回指向第一个元素的迭代器 2. cl 阅读全文
posted @ 2018-11-20 09:54 浪里飞 阅读(3175) 评论(0) 推荐(0)
摘要:1.transform函数的使用 transform在指定的范围内应用于给定的操作,并将结果存储在指定的另一个范围内。transform函数包含在<algorithm>头文件中。 以下是std::transform的两个声明, 一元操作: template <class InputIterator, 阅读全文
posted @ 2018-11-19 18:01 浪里飞 阅读(8155) 评论(0) 推荐(3)
摘要:1.string转换为int a.采用标准库中atoi函数,对于float和龙类型也都有相应的标准库函数,比如浮点型atof(),long型atol()。 他的主要功能是将一个字符串转化为一个数字,在实践应用的时候需要注意以下几个地方: 1--指针为NULL2--空字符处理3--正号与负号的处理4- 阅读全文
posted @ 2018-11-18 11:29 浪里飞 阅读(973) 评论(0) 推荐(0)
摘要:1.递归的定义: 程序直接或间接的调用自身的方法。 递归算法的特点:(1) 递归就是在过程或函数里调用自身。(2) 在使用递归策略时,必须有一个明确的递归结束条件,称为递归出口。(3) 递归算法解题通常显得很简洁,但递归算法解题的运行效率较低。所以一般不提倡用递归算法设计程序。(4) 在递归调用的过 阅读全文
posted @ 2018-11-13 21:55 浪里飞 阅读(2568) 评论(0) 推荐(0)
摘要:string类在c++中是一个模板类,位于名字空间std中,注意这里不是string.h,string.h是C字符串头文件。 将string类型转换为字符数组char arr[10];string s("ABCDEFG");int len = s.copy(arr, 9);arr[len] = '\ 阅读全文
posted @ 2018-11-09 20:23 浪里飞 阅读(12601) 评论(0) 推荐(1)
摘要:c++程序中,采用一种专门的结构化处理逻辑的异常处理机制。 1.try语句 try语句块的作用是启动异常处理机制,检测try语句块中程序语句执行时可能出现的异常。 try语句块总是与catch一同出现,在一个try语句块后,至少有一个catch语句块。 2.throw语句 throw语句用来强行抛出 阅读全文
posted @ 2018-11-06 21:06 浪里飞 阅读(8467) 评论(0) 推荐(0)
摘要:一、首先介绍一下三者printf,sprintf,fprintf的功能 1,printf就是标准输出,在屏幕上打印出一段字符串来。 2,sprintf就是把格式化的数据写入到某个字符串中。返回值字符串的长度。 3,fprintf是用于文件操作。 原型:int fprintf(FILE *stream 阅读全文
posted @ 2018-10-19 19:03 浪里飞 阅读(32083) 评论(1) 推荐(4)
摘要:1.static成员函数不能定义为const的,这是因为static成员函数只是全局函数的一个形式上的封装,而且static成员函数不能访问类的非静态成员(没有this)指针,修改非静态数据成员又从何说起呢?还有如果成员函数返回值是个引用的话,则也不能声明为const类型,因为返回引用就意味着你在函数外面可能会修改其指向的内存。 2.static成员函数不能声明为const,但是sta... 阅读全文
posted @ 2013-08-08 07:49 浪里飞 阅读(3528) 评论(0) 推荐(0)
摘要:尽管函数名和参数列表都相同,void foo( ) const成员函数是可以与void foo( )并存的,可以形成重载! 我们假设调用语句为obj.foo(),如果obj为non-const对象,则调用foo()。如果obj为const对象,则调用foo()const。另外要注意,假如没有提供foo()const,则const obj调用foo()将会报错。但假如是没有提供foo(),则non-... 阅读全文
posted @ 2013-08-08 00:19 浪里飞 阅读(874) 评论(0) 推荐(0)
摘要:inline是加在实现上,就算加在声明上,编译器也会忽略掉。内联展开是在编译时进行的,只有链接的时候源文件之间才有关系。所以内联要想跨源文件必须把实现写在头文件里。如果一个inline函数会在多个源文件中被用到,那么必须把它定义在头文件中。 注意:将函数的定义({…}之间的部分)放在头文件中是强制的,除非该函数仅仅被单个 .cpp 文件使用。尤其是,如果你将内联函数的定义放在 .cpp... 阅读全文
posted @ 2013-04-06 00:56 浪里飞 阅读(6107) 评论(0) 推荐(1)
摘要:C++ inline 函数 (一)inline函数(摘自C++ Primer的第三版) inline int min(int first, int secend) {/****/}; inline 函数对编译器而言必须是可见的,以便它能够在调用点内展开该函数。与非inline函数不同的是,inline函数必须在调用该函数的每个文本文件中定义。当然,对于同一程序的不同文件,如... 阅读全文
posted @ 2013-04-06 00:26 浪里飞 阅读(909) 评论(0) 推荐(0)