![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C++
刚入坑的炸弹
这个作者很懒,什么都没留下…
展开
-
C++构造函数初始化写法
数据成员赋值写法:class test{private: int re; int im;public: test(int r,int i) { re = r; im = i; }}初始列表写法:class test{private: int re; int im;public: test(int r,int i):re(r),im(i) { }}两者之间的区别:两者的得到的结果是一样的,但是在性能上存在着很大的差异,初始化列表明显比数据成员变量赋值要快原创 2020-08-03 16:51:24 · 468 阅读 · 0 评论 -
顺序容器相关
vector可变大小数组。支持快速随机访问。在尾部之外的位置插入或者删除元素可能很慢deque双端队列。支持快速随机访问。在头尾位置插入或删除速度很快list双向链表。只支持双向顺序访问。在 list 中任何位置都进行插入或删除操作速度都很快forward_list单向链表。只支持单向顺序访问。在链表任何位置进行插入或删除操作速度都很快array固定大小数组。支持快速随机访问。不能添加或删除元素string与 vector 相似的容器,单专门用于保存字符...原创 2020-05-27 09:54:39 · 140 阅读 · 0 评论 -
C/C++中字符串与任意类型相互转换
任意类型转字符串● itoa():将整型值转换为字符串。● ltoa():将长整型值转换为字符串。● ultoa():将无符号长整型值转换为字符串。● gcvt():将浮点型数转换为字符串,取四舍五入。● ecvt():将双精度浮点型值转换为字符串,转换结果中不包含十进制小数点。● fcvt():指定位数为转换精度,其余同ecvt()。字符串转任意类型● atof():将字符串转换...原创 2020-04-17 13:55:54 · 584 阅读 · 0 评论 -
C/C++中strcpy()和strdup()的区别及使用
strcpy和strdup都是C/C++语言字符串库中的方法,头文件是string.h。strdup()函数是c语言中常用的一种字符串拷贝库函数,一般和free()函数成对出现。strcpy是C语言标准库函数,实现字符串复制的功能。两者的用法基本相同,但是在使用strdup就很容易出现坑。strcpy(s1,s2)功能:复制字符串 s2 到字符串 s1。返回值:返回字符串 s1 的起始位置...原创 2020-04-17 13:23:37 · 3129 阅读 · 0 评论 -
C++关于new/delete 和malloc/free
1、new 和 malloc 的区别是什么?new 是以具体类型为单位进行内存分配malloc 以字节为单位进行内存分配new 在申请内存空间时可进行初始化malloc 仅根据需要申请定量的内存空间new 在所有C++编译器中都被支持malloc 在某些系统开发中不能调用new 能够触发构造函数的调用malloc 仅分配需要的空间对象的创建只能使用newmalloc 不适合面...原创 2020-04-07 17:12:20 · 255 阅读 · 0 评论 -
& 和 * 的多重含义
int i = 42; int &r = i; //& 紧随类型名出现,因此是声明的一部分,r 是一个引用int *p ; //* 紧随类型名出现,因此是声明的一部分,p 是一个指针p = &i; //& 出现在表达式中,是一个取地址符*p = i; //* 出现在表达式中,是一个解引用符int &...原创 2020-03-11 14:17:10 · 384 阅读 · 0 评论 -
关于虚函数
1、构造函数不可能成为虚函数编译时不通过,因为在构造函数执行完之后,虚函数表指针才会被正确的初始化。但是析构函数可以可以为虚函数,而且在含有父类的程序设计当中,应该将析构函数设计为虚函数,防止在工程中造成了内存泄露的问题。#include <iostream>#include <string>using namespace std;class Base{...原创 2020-03-11 10:27:22 · 142 阅读 · 0 评论 -
重载 前置++ 和 后置++ 的区别
++ 操作符是可以被重载的,在全局函数和成员函数里都可以被重载重载前置++重载前置++操作符不需要额外的参数Test& operator ++() { ++Value; return * this; }重载后置++在重载后置++操作符的时候需要一个 int 类型的占位参数Test operator ++(int) { Test ret(Value); ...原创 2020-02-27 13:35:51 · 1197 阅读 · 0 评论 -
C++中虚函数和纯虚函数的用法和区别
首先:强调一个概念定义一个函数为虚函数,不代表函数为不被实现的函数。定义他为虚函数是为了允许用基类的指针来调用子类的这个函数。定义一个函数为纯虚函数,才代表函数没有被实现。定义纯虚函数是为了实现一个接口,起到一个规范的作用,规范继承这个类的程序员必须实现这个函数。下面直接看一个例子class A{public: virtual void foo() { ...转载 2019-10-17 08:37:13 · 219 阅读 · 0 评论 -
assert 函数的用法
一直以来对于assert函数的理解就仅仅以为是一个报错函数,但是其实它是一个宏。assert宏的原型定义在<assert.h>中,其作用是如果它的条件返回错误,则终止程序执行。其原型定义:#include <assert.h>void assert( int expression );assert的作用是现计算表达式 expression ,如果其值为假(即为0)...转载 2019-10-16 07:16:48 · 364 阅读 · 0 评论 -
环形队列实现原理
环形队列是在实际编程极为有用的数据结构,它有如下特点。它是一个首尾相连的FIFO的数据结构,采用数组的线性空间,数据组织简单。能很快知道队列是否满为空。能以很快速度的来存取数据。因为有简单高效的原因,甚至在硬件都实现了环形队列.环形队列广泛用于网络数据收发,和不同程序间数据交换(比如内核与应用程序大量交换数据,从硬件接收大量数据)均使用了环形队列.一.环形队列实现原理内存上没有环形的结构...转载 2019-10-13 10:11:22 · 490 阅读 · 0 评论 -
C++字符串函数
C++常用字符串函数用法整理strlen(s1)strcpy(s1,s2)strcat(s1,s2)strcmp(s1,s2)strlwr(s1)strupr(s1)strncpy(s1,s2,len)strncmp(s1,s2,len);strstr(s1,s2);原创 2019-09-25 13:26:24 · 1699 阅读 · 0 评论