![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C++知识点
奋斗不悔
这个作者很懒,什么都没留下…
展开
-
C++构造函数初始化列表
构造函数初始化类成员时,是按照声明顺序初始化的,而不是按照出现在初始化列表里的顺序。原创 2017-03-28 10:54:51 · 187 阅读 · 0 评论 -
关于位运算-快速幂
&运算通常用于二进制取位操作,例如一个数&1的结果就是取二进制的最末位。还可以用来判断奇偶性。x&1==0;x为偶数x&1==1;x为奇数原创 2017-06-29 10:00:56 · 880 阅读 · 0 评论 -
double判断是否为0
double db;if(db>=(-1e-6)&&db原创 2017-06-29 09:56:17 · 18722 阅读 · 0 评论 -
关于容器
vector的capacity和size的区别:size是指它已经保存元素的个数,capacity是指在不分配内存空间的前提下它最多可以保存的元素;vector中的元素在内存中是连续存放的,所以需要capacity,list没有capacity是因为其存储元素的内存是不连续的,不需要capacity,array是因为其大小是固定的。原创 2017-05-14 19:42:43 · 283 阅读 · 0 评论 -
迭代器iterator
迭代器成员:begin和end;其中begin成员负责返回指向第一个元素的迭代器;end成员负责返回指向容器的“尾元素的下一位置”,也就是说指示的是一个本不存在的“尾后”元素,end成员返回的迭代器被称作尾后迭代器;如果容器为空,begin和end返回的是同一个迭代器,都是尾后迭代器;所有标准库容器的迭代器大多数都没有定义只要两个迭代器指向的是同一个容器中的元素或者尾元素的下一原创 2017-05-06 11:58:52 · 275 阅读 · 0 评论 -
指针与引用
不同点指针本身是一个对象,允许对指针赋值和拷贝,在指针生命周期内可以先后指向不同的对象;指针无须在定义时赋初值。 指针如果没有被初始化,会拥有一个不确定的值;相同点引用类型必须与其所引用对象的类型一致,但是有两个例外,一种是,在初始化常量引用时允许用任意表达式作为初始值,只要该表达式可以转化为引用的类型即可;允许为一个常量引用绑定非常量的对象,字面值,甚至是一个表达式;常量引用仅原创 2017-05-05 16:58:53 · 266 阅读 · 0 评论 -
关于函数模板
一个函数模板就是一个公式,可以用来生成针对特定类型的函数版本。typename或者class,含义相同,可以互相使用,一个模板参数列表中也可以同时使用这两个关键字。template int compare(const T &v1,const T &v2){ if(v1>v2) return -1; if(v1<v2) return 1; return 0;}cout<<com原创 2017-05-12 18:14:44 · 296 阅读 · 0 评论 -
C++ class和struct区别整理
1、访问控制:class成员默认权限是private的,而struct成员默认权限是public;class默认继承方式是私有的继承,而struct默认是公有继承。这就是为什么我们在使用class继承的时候要表明public继承的原因。2、到底默认是public继承还是private继承,关键看子类而不是基类,即struct可以继承class,class也可以继承struct,默认的访原创 2017-03-28 10:53:08 · 387 阅读 · 0 评论 -
关于引用
引用必须初始化;一般在初始化变量时,初始值会被拷贝到新建对象中。然而定义引用时,程序把引用和它的初始值绑定在一起,而不是将初始值拷贝给引用。一旦初始化完成,引用将和它的初始化对象一直绑定在一起。因为无法令引用重新绑定到另外一个对象,因此引用必须初始化。引用并非对象,只是为一个已经存在的对象所起的另外一个名字。定义一个引用后,对其进行的所有操作都是在与之绑定的对象上进行的。为引用赋值原创 2017-05-05 16:33:00 · 217 阅读 · 0 评论 -
翻转子串
假定我们都知道非常高效的算法来检查一个单词是否为其他字符串的子串。请将这个算法编写成一个函数,给定两个字符串s1和s2,请编写代码检查s2是否为s1旋转而成,要求只能调用一次检查子串的函数。给定两个字符串s1,s2,请返回bool值代表s2是否由s1旋转而成。字符串中字符为英文字母和空格,区分大小写,字符串长度小于等于1000。题外补充:string中的find函数。原创 2017-04-18 07:46:48 · 507 阅读 · 0 评论 -
函数模板
函数模板使用通用类型来定义函数,其中的通用类型可以用具体的类型(如int或double)替换。通过将类型作为参数传递给模板,使编译器生成该类型的函数。template ;Any叫虚拟类型参数;模板并不创建任何函数,只是告诉编译器如何定义函数。要让编译器知道程序需要一个特定形式的交换函数,只需要在程序中使用SWAP()函数即可,编译器将检查所使用的参数类型,自动生成相应的函数。swa原创 2017-03-25 10:43:16 · 219 阅读 · 0 评论 -
C++中int long double char 表示范围
关于带符号与无符号类型:整型int、short和long默认为带符号型,要获得无符号型必须规定该类型为unsigned。一字节表示八位,即1byte=8bit;int 4byte=32bit,有符号范围为-2^31-1~2^31-1,无符号范围为0~2^32-1;long 4byte=32bit,同int型;double,8byte=64bit,范围:1.79769e+308 ~原创 2017-03-24 21:30:04 · 517 阅读 · 0 评论 -
const与指针
1、有两种不同的方式将const关键字用于指针,第一种是让指针指向一个敞亮对象,这样可以防止使用该指针来修改所指向的值。第二种是将指针本身声明为常量,这样可以防止改变指针指向的位置。看细节:声明一个指向常量的指针pt,int age =39 ;const int * pt= &age ;该声明表示,pt指向一个const int (这里为39),因此不能用pt来修改这个值,换句话来原创 2017-03-22 15:43:21 · 331 阅读 · 0 评论 -
关于用指针来处理数组
1、在C++中,当且仅当在函数头或者函数原型中,int *arr 和int arr[ ] 含义是相同的。它们意味着arr是一个int类型指针,数组表示法int arr[ ]提醒用户,arr不仅指向int,还指向int 数组的第一个int。2、当指针指向数组的第一个元素时,用数组表示法,当指针指向一个独立的值,使用指针表示法,而且,在其他上下文中, int *arr 和 int arr [ ]含原创 2017-03-22 14:44:08 · 2509 阅读 · 0 评论 -
C++知识点
关于strlenvoid test3(char* str1){ if(str1 == NULL){ return ; } char string[10]; if( strlen( str1 ) <= 10 ) { strcpy( string, str1 ); }}应将strcpy函数的实现//strcpy函数char *strcpy(char *s原创 2017-06-19 17:07:44 · 220 阅读 · 0 评论