STL: Allocator
分配器, 通常与容器共同使用而不单独使用, 作用是给容器指定一种分配空间的形式. 你硬要用的话毕竟它是个类, 可以直接调用. 但个人认为你不该这样用, 这就好像装机时候的防呆口一样, 防呆不防傻, 人家设计的时候就防止你单独使用从而阻碍你使用了, 你还硬要用. int *p; allocator<int> alloc1; int size; cin >> ...
分配器, 通常与容器共同使用而不单独使用, 作用是给容器指定一种分配空间的形式. 你硬要用的话毕竟它是个类, 可以直接调用. 但个人认为你不该这样用, 这就好像装机时候的防呆口一样, 防呆不防傻, 人家设计的时候就防止你单独使用从而阻碍你使用了, 你还硬要用. int *p; allocator<int> alloc1; int size; cin >> ...
一面 面试官背景计算机, 面试流程总结: 个人介绍+项目介绍+C++基础+算法数学 C++基础 shared_ptr与unique_ptr 要不是前几天才看到了里面的实现, 就一点都回答不上来, 没用过 区别: unique_ptr: 只能被一个对象持有, 该对象拥有该指针的唯一所有权 使用场景: 自动释放内存: 避免析构函数中调用 delet...
const 的作用: 用于修饰某某东西不变 使用 const 修饰成员函数 const 关键字, 只有在成员函数中能有如下写法: retureType functionName(argType &...args) const {}. 即只有成员函数中能够使用上述的 const 用法, 来表明, 该成员函数不会对成员本身的数据进行修改 一个良好的设计习惯本身就要求, 对所...
vptr 与 vtbl 只要当基类中存在一个虚函数, 该类就会生成一个虚指针. 因此你在计算一个类的大小时, 会发现比所有类其中的数据大小之和多一个指针的大小( 32位系统是 4 字节, 64位则是 8 字节 ). 该指针与所有的虚函数相关联, 与非虚函数无关. vptr 指向的记录了虚函数的信息的表格, 就叫做虚表格 vtbl. 该表格内存放了该类中的所有虚函数指针( 指向函数的指针,...
成员模板( Member Template ) C++ 模板, 除开较为常见的 class template 和 function template, 还有一种 member template. 它被大量运用在继承关系的构造函数中, 以实现通过派生类的拷贝构造基类函数. // class template template <class T1, class T2> struc...
仿函数( Functor ), 就是一个像函数的类, 其中必须重载实现 operator() ( operator call ), 以下用 STL 中的 less 举例. template< class Arg1, class Arg2, class Result> struct binary_function { typedef Arg1 first_argument...
简介与基础知识 转换函数常用于将一个类转换为另一个类, 具有与一般函数不同的声明注意事项, demo 如下: class frac { private: int numer; int deno; public: operator double() const { return (double)(numer / deno); } frac(int nu, i...
继承( Inheritance ) 虚函数常用于继承之中, 在父类中的函数种类如下: 纯虚函数: 父类中未给出默认定义, 子类必须重写 当一个父类足够抽象时, 它完全无法预测子类在某些情况下的行为, 此时这些行为应当被父类设计为纯虚函数 虚函数: 父类中给出默认定义, 子类尽量重写. (你要是希望子类无需重写何必设计成虚函数呢? 用非虚函数...
起因, Leetcode 1206. 设计跳表, 愣是没通过题目给的动图看懂搜索过程, 遂学之 基本思想 看图! 同一个结点之间, 从高层至低层有连接. 查找, 插入, 删除的时间复杂度都是 $O(\log{n})$, 时间期望与红黑树一样, 不过跳表是有序链表的改进, 而非二叉树. 有序链表的查找时间复杂度显然 $O(n)$, 但跳表引入了分层. 最底层是初始有序链表, 定义位...
static member data 在变量名前加 static 关键字, 使得该变量变为静态变量. 变量存储在全局数据区而非堆栈, 不会随着所在域(函数或成员)的消亡而消亡. // 常见于 Leetcode 题目中用于取余的值 static constexpr int MOD = 1e9 + 7; 若在成员变量前修饰, 则该成员变量在全局域中只有一份. 应用场景通常为多个成员共享同...