c++
文章平均质量分 59
.
vector<>
这个作者很懒,什么都没留下…
展开
-
【c++】-vector和string的常见用法
写算法题的时候总是用vector,总是忘记很多vector的用法,现做一个总结,应付算法题没问题~ 1.二维vector的初始化 vector<vector<int>> num(n1, vector<int>(n2));//n1是行,n2是列 2.重写比较函数进行排序 #include <algorithm> bool cmp(country A, country B) { return A.Gold_num > B.Gold_num.原创 2021-03-09 14:50:42 · 2765 阅读 · 0 评论 -
【c++】经典面试题吐血整理
c++ 程序从源程序到生成可执行文件的过程 源程序 编译预处理:处理宏定义,头文件,特殊符号之类的 编译:处理关键字,确认所有指令是否符合语法 优化:删除公共表达式,循环优化之类的,优化之后得到汇编程序 汇编:将汇编程序翻译成目标机器指令 链接:将多个目标文件及所需要的库连接成最终的可执行目标文件 静态链接: 时机:在形成可执行文件之前链接 过程:将函数对应的目标文件要一份副本,将所有的程序模块连接成一个单独的可执行文件 优点:执行速度快 缺点: 浪费空间(同一个目标文件在内存中可能存在多个副本) 更新困难原创 2021-01-04 20:56:12 · 19851 阅读 · 18 评论 -
【c++】-虚函数表与多态
本篇文章是对B站上一个课程的笔记 https://www.bilibili.com/video/BV1LK411s7ES?from=search&seid=13723858519383902190 Question1:虚函数引入后类会发生什么变化? 对于一个空类,其sizeof值是1 对空类加入两个普通成员函数,其sizeof仍然是1(只有成员变量会占用内存空间,普通成员函数并不会占用空间) 继续加入一个虚函数,sizeof值变成了4!! 这是因为,如果类中存在虚函数,则编译器就..原创 2021-01-29 11:57:41 · 663 阅读 · 0 评论 -
【c++】-虚析构函数
课程笔记:https://www.bilibili.com/video/BV1wx411473L?from=search&seid=11637211429638882354 为什么析构函数要是虚函数? 如果一个父类有子类,那么这个父类的析构函数一定是虚析构函数,原因是: 如果父类的析构函数不是虚析构,那么当用delete删除一个指向子类对象的父类指针时,将调用父类的析构函数,子类只释放了来自父类的那部分成员变量,而子类自己扩展的成员没有被释放,造成内存泄露。在下图中可以看到,我们在堆上申..原创 2021-01-29 20:23:58 · 612 阅读 · 0 评论 -
【c++】-纯虚函数与抽象类
定义 纯虚函数:纯虚函数是一种特殊的虚函数,他在基类中声明但是不在基类中定义具体的操作 抽象类:含有纯虚函数的类叫做抽象类,若派生类没有重写这一个纯虚函数,那么派生类也是抽象类 父类是形状,子类是正方形,形状中有一个纯虚函数“求面积”,这个纯虚函数在形状类中定义,但是不具体声明,而是令为0,在子类中才具体声明。 在虚函数表的表项中,纯虚函数所对应的表项为0,上图中的这个例子,从结构上来讲是这个样子的。 对于普通虚函数来说,子类虚函数表会在父类虚函数表的基础上进行覆盖。抽象类中纯虚函数对原创 2021-01-29 21:11:02 · 512 阅读 · 0 评论