C++高频知识点(十二)
·
文章目录
56. 什么是i帧/p帧/b帧?






57. C和C++的区别是什么?

58. 实现一个空类,该空类的函数有哪些?

验证默认成员函数的存在
我们可以通过定义一个空类,并使用这些默认成员函数,来验证它们的存在:
#include <iostream>
class Empty {
// 这个类是空的,不包含任何显式声明的成员变量或成员函数
};
int main() {
// 使用默认构造函数
Empty e1;
// 使用拷贝构造函数
Empty e2 = e1;
// 使用拷贝赋值运算符
e2 = e1;
// 使用移动构造函数(C++11及以上)
Empty e3 = std::move(e1);
// 使用移动赋值运算符(C++11及以上)
e3 = std::move(e2);
return 0;
}

59. 介绍下STL,以及你知道并使用的一些容器?
STL(Standard Template Library)是 C++ 标准库的一部分,它提供了一系列通用的数据结构和算法,以及一些函数对象,用于进行数据结构的操作和算法的实现。
STL 的核心组件包括容器、迭代器和算法。


60. auto和decltype的区别?

代码示例说明:
#include <iostream>
int main() {
int a = 0;
const int& b = a;
auto x = b; // x 被推导为 int,因为 auto 会忽略顶层 const
decltype(b) y = a; // y 被推导为 const int&,因为 decltype 保留所有修饰符
std::cout << "x: " << x << ", y: " << y << std::endl;
int n = 10;
decltype(n) m = n; // m 被推导为 int ,n这个家伙的类型 上一句已经给确定了 decltype 只是获取
decltype((n)) p = n; // p 被推导为 int&,因为 (n) 是左值表达式
std::cout << "n: " << n << ", m: " << m << ", p: " << p << std::endl;
return 0;
}
之后我会持续更新,如果喜欢我的文章,请记得一键三连哦,点赞关注收藏,你的每一个赞每一份关注每一次收藏都将是我前进路上的无限动力 !!!↖(▔▽▔)↗感谢支持!
更多推荐


所有评论(0)