1. 多继承的名字冲突问题 多继承:一个类可以同时继承多个类,但是多继承很容易产生同名冲突(函数、变量)。 对于上述情况,如果由于多继承出现的名字冲突问题,需要通过指定类作用域的方式加以区分。 2. 多继承的优点 多继承...
C++ 中的 using 用法有很多种,我们下面剖析下常见几种场景: using 关键字给类型增加别名 using 用于继承中的同名函数 using 关键字用于构造函数 1. using 关键字给类型增加别名 对于普通类...
unordered_map 和 unordered_multimap 容器的内部和 map 容器一样,存储的都是键值对, 以 pair 类型存储。 unordered_map 是无序映射容器,不会根据元素的 key 进行...
队列 : 先进先出,按照我们添加元素的顺序来决定优先级队列 : 并不是按照元素的添加顺序来访问,而是按照优先级来访问
vector 容器叫做动态数组,其大小可以随着元素的增长而变化,创建得时候不需要指定大小。vector 容器和 array 容器一样使用一块连续的内存空间来存储。 动态增长原理:1. 当添加元素的时候,如果空间不足,此时...
array 是一个数组,对 C-style 的数组的封装(int arr[] = {10, 20, 30}) 为什么C++要对 C 风格的数组进行封装?而不是直接使用C风格数组?array 是对C数组封装,array 是...
什么是链表?链表是由一些列节点组成的,每一个阶段包含数据域、指针域,每个节点的内存都是独立,使用的是非连续的内存。 链表分为:单向链表、双向链表、循环链表单向链表的开销最低,空间只需要一个指针即可,从操作角度:单向链表添...
STL 中的迭代器有以下几种:输入迭代器、输出迭代器、正向迭代器、双向迭代器、随机访问迭代器。1. 输入迭代器:一次只能读取一个元素,只能向前移动,支持:++、==、!=、(只读) 2. 输出迭代器:一次只能写一个元素,...
函数对象适配器主要用于对函数、函数对象进行适配(转换),使得原本不符合接口需求的函数、函数对象变得符合要求。比如:我们有一个 2 个参数的函数对象,但是我们需要 1 个参数的函数对象,此时可以通过函数对象适配器进行转换。...
目前业界公认的最好的激活函数是 swish 和 mish 函数,在保持原结构不变的基础上,直接将模型的激活函数换成 HardSwish 或 Mish 函数,都会使得模型的性能有所提升。 下图为 HardSwish 和 M...
最新评论