常对象指的是使用 const 关键字修饰的类对象,常函数指的是由 const 关键字修饰的函数。这里需要注意:只有成员函数才可以被 const 关键字修饰,而全局函数无法被 con...
1. 类对象的默认赋值行为 2. 类对象中深赋值和浅赋值问题 3. 类对象的移动赋值行为 当对象进行赋值的时,并不是所有的对象都需要完整的赋值过程(重新申请内存、数据拷贝)。假设,...
1. 委托构造函数的使用场景 缺点:每个构造函数都有重复的成员变量的初始化语句 初始化交给一个普通成员函数,该成员函数无法使用简洁的初始化列表语句,需要额外给类增加一个初始化函数。...
在 C++ 11之后,值的类别有三种:左值(lvalue)、纯右值(prvalue)、将亡值(xvalue)。 1. 左值 在C++中,左值(lvalue)是指表达式结束后仍然存在...
移动语义是 C++11 标准引入的一个特性,旨在通过优化资源管理改善 C++ 的效率。移动语义主要涉及通过右值引用(rvalue references)来避免不必要的深拷贝,从而减...
1. 异常对象的保存 异常对象保存,指的是当异常发生时,我们将其捕获,但是并不马上处理,而是将其存储起来。这样的话,我们可以在程序最后、或者其他的并行任务的进程、线程里处理。 接下...
1. 多继承的名字冲突问题 多继承:一个类可以同时继承多个类,但是多继承很容易产生同名冲突(函数、变量)。 对于上述情况,如果由于多继承出现的名字冲突问题,需要通过指定类作用域的方...
C++ 中的 using 用法有很多种,我们下面剖析下常见几种场景: using 关键字给类型增加别名 using 用于继承中的同名函数 using 关键字用于构造函数 1. us...
unordered_map 和 unordered_multimap 容器的内部和 map 容器一样,存储的都是键值对, 以 pair 类型存储。 unordered_map 是无...
队列 : 先进先出,按照我们添加元素的顺序来决定优先级队列 : 并不是按照元素的添加顺序来访问,而是按照优先级来访问
vector 容器叫做动态数组,其大小可以随着元素的增长而变化,创建得时候不需要指定大小。vector 容器和 array 容器一样使用一块连续的内存空间来存储。 动态增长原理:1...
array 是一个数组,对 C-style 的数组的封装(int arr[] = {10, 20, 30}) 为什么C++要对 C 风格的数组进行封装?而不是直接使用C风格数组?a...
什么是链表?链表是由一些列节点组成的,每一个阶段包含数据域、指针域,每个节点的内存都是独立,使用的是非连续的内存。 链表分为:单向链表、双向链表、循环链表单向链表的开销最低,空间只...
STL 中的迭代器有以下几种:输入迭代器、输出迭代器、正向迭代器、双向迭代器、随机访问迭代器。1. 输入迭代器:一次只能读取一个元素,只能向前移动,支持:++、==、!=、(只读)...
函数对象适配器主要用于对函数、函数对象进行适配(转换),使得原本不符合接口需求的函数、函数对象变得符合要求。比如:我们有一个 2 个参数的函数对象,但是我们需要 1 个参数的函数对...
Heap 数据结构一般都被看做是一棵完全二叉树对象,我们知道对于完全二叉树可以使用连续的数组空间来存储各个结点关系。 Heap 是一种非常重要的数据结构,使用 Heap 可以实现高...
自动混合精度(AMP)
2024-06-07阅读(1159)
XGBoost(Extreme Gradient Boosting)
2023-03-29阅读(1496)
XLNet
2022-10-16阅读(1128)
因子分解机(Factorization Machine)
2022-09-29阅读(1039)
霍夫曼编码算法(Huffman Coding)
2022-09-22阅读(1330)
克鲁斯卡尔算法(Kruskal)
2022-09-21阅读(1007)
普利姆算法(Prim)
2022-09-21阅读(925)
迪杰斯特拉算法(Dijkstra)
2022-09-20阅读(977)
图遍历算法(DFS、BFS)
2022-09-20阅读(889)
潜在语义分析(Latent Semantic Analysis)
2022-06-28阅读(816)