![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C++
孤帆扁舟去
这个作者很懒,什么都没留下…
展开
-
C++面试常考知识点汇总
C++知识点汇总1.面向对象C++是面向对象的编程语言。面向对象的程序设计开发时间短,效率高, 可靠性高。面向对象编程的编码具有高可重用性,可以在应用程序中大量采用成熟的类库(如STL),从而虽短了开发时间,软件易于维护和升级。面向对象的基本概念:类、对象和继承。所考虑的是如何构造一个对象模型,让这个模型能够契合与之对应的问题,通过获取对象的状态信息得到输出或实现过程控制。面向对象的基本...原创 2019-08-17 21:02:45 · 2520 阅读 · 0 评论 -
C++学习笔记9:多态与虚函数纯虚函数
多态当类之间存在层次结构,并且类之间是通过继承关联时,就会用到多态。多态就是将基类类型的指针或者引用指向派生类型的对象。多态通过虚函数机制实现。形成多态必须具备三个条件:必须存在继承关系;继承关系必须有同名虚函数(其中虚函数是在基类中使用关键字Virtual声明的函数,在派生类中重新定义基类中定义的虚函数时,会告诉编译器不要静态链接到该函数);存在基类类型的指针或者引用,通过该指针或...原创 2019-08-26 13:07:40 · 328 阅读 · 0 评论 -
C++学习笔记10:文件IO
scanf("%3d%f",&x,&y);scanf确实可以设置输入整数的宽度,%3d表示取三位整数;printf也可以设置输出整数的宽度,%3d表示输出至少3位,假如超过3位,有多少输出多少。本题考查文件操作函数,fseek用于二进制方式打开的文件,移动文件读写指针位置。将文件内部的位置指针重新指向一个流(数据流/文件)的开头。所以最后只保留的6,答案为C。#includ...原创 2019-08-28 14:58:32 · 273 阅读 · 0 评论 -
STL学习笔记1:线性结构
线性结构与非线性结构list与vector的区别list使用了不连续分配的内存eraseCONTAINER::iterator iter , tempIt;for (iter = cont.begin() ; iter != cont.end() ; ) { tempIt = iter; ++iter; cont.erase(tempIt); ...原创 2019-08-28 16:04:16 · 266 阅读 · 0 评论 -
C++学习笔记11:内存相关 new/delete malloc/free
内存管理a、 静态存储区,是在程序编译时就已经分配好的,在整个运行期间都存在,如全局变量、常量。b、 栈上分配,函数内的局部变量就是从这分配的,但分配的内存容易有限。c、 堆上分配,也称动态分配,如我们用new,malloc分配内存,用delete,free来释放的内存。数据段存放内容特点BSS程序中未初始化的全局变量和静态变量可读写,在程序执行之前BSS段会自动...原创 2019-08-28 16:04:38 · 256 阅读 · 0 评论 -
十大排序算法及C++实现
算法平均时间复杂度最好最坏空间复杂度稳定性冒泡排序o(n2)o(n)o(n2)o(1)稳定选择排序o(n2)o(n2)o(n2)o(1)不稳定插入排序o(n2)o(n)o(n2)o(1)稳定希尔排序o(nlogn)o(nlog2n)o(nlogn)o(1)不稳定归并排序o(nlogn)o(nlogn)...原创 2019-09-17 21:17:28 · 589 阅读 · 0 评论 -
lower_bound()函数与upper_bound()函数
二分查找lower_bound() 返回的是位置查找第一个不小于目标的数/查找最后一个小于目标的数int find(vector<int>&arr,int target){ int left=0,right=arr.size();//左闭右开 while(left<right){ int mid=left+(right-left)/2; if(arr[m...原创 2019-09-17 21:28:51 · 1079 阅读 · 1 评论 -
Knuth-Shuffle算法:公平洗牌算法
如何通过算法,使得扑克牌中每一种排列等可能的出现。分析:首先,扑克牌的排列n张共有n!次,因此算法应该产生n!结果。每一种排列等可能出现等价于每个元素等概率出现在每个位置for(int i=n-1;i>=0;i--){ swap(arr[i],arr[rand()%(i+1)]);//每次随机出0~i之间的下标}也可以写成for(int i=0;i<n;i++){ ...原创 2019-09-17 21:37:19 · 1406 阅读 · 0 评论 -
网易互娱游戏研发面经及答案:C++基础
面经整理自网络,答案为个人补充内容。C++基础怎么理解多态的,多态应用场合虚函数,子类父类virtual 写不写有什么区别类型转换,指针强制转换有什么危害,多继承子类父类指针转换(列出一种转换是否可以为什么或者为什么不行会有什么问题)做题随机查找 分析复杂度 空间复杂度o(1)怎么实现——我想了一会,最后没时间面试官说算了…尴尬2.Static关键字各种用法,Static声明的函数能否...原创 2019-09-17 22:52:12 · 6189 阅读 · 2 评论 -
C++学习笔记9:重载
C++ 允许在同一作用域中的某个函数和运算符指定多个定义,分别称为函数重载和运算符重载。函数重载在同一个作用域内,可以声明几个功能类似的同名函数,但是这些同名函数的形式参数(指参数的个数、类型或者顺序)必须不同。class printData{ public: void print(int i) { cout << "整数为: " <<...原创 2019-08-26 11:12:19 · 104 阅读 · 0 评论 -
C++学习笔记8:继承与派生
继承继承允许我们依据另一个类来定义一个类,这使得创建和维护一个应用程序变得更容易,达到了重用代码功能和提高执行时间的效果。当创建一个类时,只需指定新建的类继承了一个已有的类的成员即可。已有的类称为基类(父类),新建的类称为派生类(子类)。基类 & 派生类一个类可以派生自多个类,这意味着,它可以从多个基类继承数据和函数。定义一个派生类,我们使用一个类派生列表来指定基类。类派生列表以...原创 2019-08-26 10:47:50 · 241 阅读 · 0 评论 -
c++面试真题及解答
面试真题1. 面向对象的三大特性,怎么解释?2. 对类的理解3. 对多态的理解,动态和静态,编译时多态和运行时多态4. C++的内存管理,堆,栈,自由存储区,静态存储区5. STL的核心以及vector的实现(内存扩展)6. struct和class的区别7. 重写与重载,function不想被重写, 怎么办?8. 函数参数怎么入栈?为什么会这样?9. 并行(多线程,多进程,强行...原创 2019-08-18 19:25:37 · 165 阅读 · 0 评论 -
C++学习笔记1:关键字Const和宏定义#define
constconst关键字介绍const是constant的简写,只要一个变量前面用const来修饰,就意味着该变量里的数据可以被访问,不能被修改。也就是说const意味着只读(readonly)。规则:const离谁近,谁就不能被修改;const修饰一个变量,一定要给这个变量初始化值,若不初始化,后面就无法初始化。本质:const在谁后面谁就不可以修改,const在最前面则将其后移...原创 2019-08-25 14:07:13 · 807 阅读 · 0 评论 -
C++学习笔记2:关键字volatile
参考自菜鸟编程https://www.runoob.com/w3cnote/c-volatile-keyword.html1. 为什么用volatile?C/C++ 中的 volatile 关键字和 const 对应,用来修饰变量。对于一般的变量编译器会对变量进行优化,将内存中的变量值放在寄存器中以加快读写效率。但是用修饰符 volatile 告诉编译器不需要优化volatile声明的变量,...原创 2019-08-25 14:34:25 · 170 阅读 · 0 评论 -
C++学习笔记3:关键字explicit
explicit可以阻止不应该允许的经过转换构造函数进行的隐式转换的发生。声明为explicit的构造函数不能在隐式转换中使用。C++中, 一个参数的构造函数(或者除了第一个参数外其余参数都有默认值的多参构造函数), 承担了两个角色。 1 是个构造器 ,2 是个默认且隐含的类型转换操作符。所以, 有时候在我们写下如 AAA = XXX, 这样的代码, 且恰好XXX的类型正好是AAA单参数构...原创 2019-08-25 15:00:04 · 85 阅读 · 0 评论 -
C++学习笔记4:指针
C++ 指针学习 C++ 的指针既简单又有趣。通过指针,可以简化一些 C++ 编程任务的执行,还有一些任务,如动态内存分配,没有指针是无法执行的。所以,想要成为一名优秀的 C++ 程序员,学习指针是很有必要的。正如您所知道的,每一个变量都有一个内存位置,每一个内存位置都定义了可使用连字号(&)运算符访问的地址,它表示了在内存中的一个地址。请看下面的实例,它将输出定义的变量地址:1. ...原创 2019-08-25 21:15:10 · 290 阅读 · 0 评论 -
C++学习笔记5:引用
C++ 引用引用变量是一个别名,是某个已存在变量的另一个名字。一旦把引用初始化为某个变量,就可以使用该引用名称或变量名称来指向变量。C++ 引用 vs 指针引用很容易与指针混淆,它们之间有三个主要的不同:指针和引用都提供了间接操作对象的功能。a、 指针定义时可以不初始化,而引用在定义时就要初始化。b、引用初始化以后不能被改变,指针可以改变所指的对象。c、不存在指向空值的引用,但是存...原创 2019-08-25 21:31:26 · 77 阅读 · 0 评论 -
C++学习笔记6:结构体struct
定义结构struct语句用法struct 语句定义了一个包含多个成员的新的数据类型,格式如下:struct type_name {member_type1 member_name1;member_type2 member_name2;member_type3 member_name3;..} object_names;type_name 是结构体类型的名称,member_ty...原创 2019-08-25 21:50:35 · 149 阅读 · 0 评论 -
C++学习笔记7:类与对象(重要)
定义类定义一个类,本质上定义了类的对象包括了什么,以及可以在这个对象上执行哪些操作。类定义是以关键字 class 开头,后跟类的名称。类的主体是包含在一对花括号中。类定义后必须跟着一个分号或一个声明列表。class Box{ public: double length; // 盒子的长度 double breadth; // 盒子的宽度 dou...原创 2019-08-25 22:17:32 · 234 阅读 · 0 评论 -
网易互娱游戏研发面经及答案:计算机网络与操作系统
计算机网络TCP/UDP什么叫稳定连接?UDP/TCP的区别?TCP的nodelay,keepalive是干什么的?底层原理?TCP和UDP区别,自己设计一个可靠的UDP为什么TCP要三次握手,两次有什么问题?为什么要四次挥手?三次有什么问题?TCP三次握手四次挥手,CLOSE_WAIT和TIME_WAIT的作用TCP和UDP的区别,哪个更容易掉线(UDP是无连接的过程哪来的掉线...原创 2019-09-17 22:51:41 · 2808 阅读 · 1 评论