后台开发面试相关知识 2021-03-27 以下知识均在后台开发面试中实际出现过、总结而来。 C++ 多态的实现 即虚函数表。 STL 容器库 容器库 - cppreference.com unordered_map 和 map 的区别 略。 multimap 和 map 的区别 略。 ...
LeetCode 合集 2020-10-28 记录一些有意思的题。 经典算法 二分搜索 34. 在排序数组中查找元素的第一个和最后一个位置 二分搜索的加强版 [4. 寻找两个正序数组的中位数](https://lee ...
C++ 异常处理 2019-12-27 参考 https://www.runoob.com/cplusplus/cpp-exceptions-handling.html C++ 自带的异常处理,可以用来处理 除数为 0、加法溢出 等一些情况。虽然我们可以使用普通的 if 来判断,但是也可以使用 C++ 提供的一些异常。 这样的好处,是用标准统一了异常处理,方便了一些操作,也“提高了代码的复用性”。 三个关键字 ...
C++ 命名空间 2019-12-27 命名空间是表达多个变量和多个函数组合成一个组的方法。主要是为了解决名字(类型、变量、函数名)冲突的问题。 定义命名空间 用一个例子来说明:在 MyStudent.h 和 YourStudent.h 中都定义了 Student 类,并在 main 函数中包含这两个文件。 //MyStudent.cpp class Student { public: vo ...
C++ 模板 2019-12-27 C++ 最重要的特征之一就是 代码重用。 所以有了这么一个东西,可以 > 不受数据类型的影响。可以将数据类型也参数化(又叫参数化程序设计)。 于是就产生了了模板。从模板的字面义来看,有了模板应该就可以自动“产生”一堆类似的东西。 函数模板 比如我们要写最大值的函数,可能要写: int max(int a, int b){return a > b ? ...
网络流 2019-10-04 在 ACM 中第一次听到网络流,但是还没认真学就被迫退 役了。(菜的真实) 第二次是在肖老师的 算法设计与分析 课程上,大概了解了网络流的思想。 > 本文参考《算法设计》,对网络流的研究偏向理论,会涉及到一些证明。 定义 ...
C++ 面向对象——继承、派生和多态 2019-09-29 派生,就是从原来的大类,通过增加新的东西、特性、条件,变成了新的小类。如,从哺乳动物通过增加特性(汪汪叫、喵喵叫),派生到狗、猫。 狗和猫,都继承了哺乳动物的特点(胎生等),派生的时候,狗、猫都会自动继承哺乳动物有的特点,无需重复声明。 名称上,被派生的(哺乳动物)叫基类(父类),派生出来的猫、狗叫做派生类(子类)。他们间的继承关系,是由派生类到大类。 (貌似继承和派生是反义词) 在 ...
C++类型转换 2019-09-17 隐式类型转换就是编译器自动转; 显式类型转换类如 (char) 强制类型转换运算符 MSDN 强制转换运算符 [C++ 强制转换运算符| 菜鸟教程](https://www.runoob.com/cplusplus/cpp-casting-oper ...
C++ 面向对象——类与对象 2019-09-10 类(Class)其实和 C++ 结构体差不多。 class ClassName { public: //公有成员 void setTime(int h, int m, int s); void showTime(){...} //在类内部实现成员函数 protected: //保护型成员 p ...
C++ I/O 输入输出 2019-09-04 C 语言风格 I/O 请见C I/O。 流:从某种 IO 设备上读入或写出的字符序列。 标准库中的 IO 对象,除了 cin、cout,还有: cerr:用来输出警告、错误给程序的使用者(可以理解为第二块屏幕) clog:用于产生 log。 cin, cout int ...