11k words 10 mins.

# 默认构造、拷贝构造、移动构造以及赋值运算符重载 构造函数1234567891011121314151617181920212223242526272829303132333435363738class MyClass {private: int* data;public: MyClass(): data(nullptr) {} ~MyClass() { delete data; } MyClass(const MyClass& other): data(nullptr)...
69 words 1 mins.

网络模型 OSI 七层模型:物理层,数据链路层,网络层,传输层,会话层,表示层,应用层 TCP/IP 四层模型:网络接口层,网际层,传输层,应用层
1.8k words 2 mins.

pdd 二面,手撕开放地址法哈希,实现 Get, Set, Delete 操作 Hashing123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778#include <bits/stdc++.h>using namespace std;struct Node{ int key; int value;...
2.4k words 2 mins.

# 杂项 explicit 构造函数默认是隐式转换的,如果想要禁止隐式转换,可以使用 explicit 关键字修饰构造函数。 比如 explicit1234567891011121314151617181920212223#include <iostream>class FileSize {public: // 构造函数:接受字节数 FileSize(long long bytes) : bytes_(bytes) {} long long getBytes() const { return...
1.2k words 1 mins.

# gtest Google 开源的 c++ 单元测试框架 https://google.github.io/googletest/ # 查看代码覆盖率 GCC + gcov (cmake 一般带了) + lcov 修改 CMakeLists.txt lcov12345678910111213# 启用调试信息和覆盖率支持(仅在需要时开启)option(ENABLE_COVERAGE "Enable coverage build" OFF)if(ENABLE_COVERAGE) if(CMAKE_CXX_COMPILER_ID MATCHES...
16k words 15 mins.

面向对象 vs 面向过程 面向对象三大特性:封装、继承、多态 c++ 不是完全面向对象的语言 封装:把数据和方法打包成一个类,隐藏实现细节,只提供接口 继承:子类继承父类的属性和方法,子类可以扩展父类的功能,实现代码复用 多态:在运行时,根据对象的实际类型,调用对应的函数。主要通过虚函数和继承实现 C++ 编译过程 预处理 -> 编译 -> 汇编 -> 链接 预处理:预处理指令、宏定义、包含文件 (处理 #include, #define, 条件编译等) 编译:把源代码编译成汇编代码 (将 .cpp 转为...
4.6k words 4 mins.

# 一、C++ 常用容器总览 容器 类型 底层结构 是否有序 是否去重 主要用途 vector 序列容器 动态数组 否 否 动态数组,随机访问 deque 序列容器 双端队列(分段连续) 否 否 首尾高效插入 list 序列容器 双向链表 否 否 频繁中间插入 / 删除 forward_list 序列容器 单向链表 否 否 节省内存的链表 array 序列容器 静态数组 否 否 固定大小数组 stack 容器适配器 deque (默认) 否 否 栈(LIFO) queue 容器适配器 deque...
2.4k words 2 mins.

# Ch8 # 冒泡排序 直接看代码 bubbleSort12345678910void bubbleSort(int a[], int n) { for (int i = 0; i < n - 1; i++) { for (int j = 0; j < n - i - 1; j++) { // j从0开始到n-i-1,原因是每次遍历之后第i大的元素已经被放到后面了,从后往前的顺序是对的 if(a[j] > a[j + 1]){ swap(a[j], a[j + 1]);...