当前位置: 首页 > news >正文

选择题知识点(一)

 一、堆排序相关

1. 建堆时间复杂度: O(n)
2. 调整堆、插入、删除: O(log2n)
3. 堆排序平均时间复杂度: O(nlog2n)
4. 空间复杂度: O(1)

 二、排序时间复杂度

 三、const 与 volatile  const修饰的变量使用指针去修改它的内容

实验一:a是常量无法直接替换,但是通过指针p是可以的,此时a被修改为20

#include<iostream>
using namespace std;
int main(void)
{
	const int a = 10;
	int* p = (int*)(&a);
	*p = 20;
	cout << "a = " << a << ", *p = " << *p << endl;

	return 0;
}

实验二:使用volatile关键字修饰const

volatile const int a = 10;

 结论:最初打印a和*p的内容为10和20,虽然二者共用同一块空间,但是const变量因为编译器优化直接存在了寄存器中,使用时可以提高访问速度,所以即使在内存中修改了变量的值,也没有打印出来。

而使用volatile关键字修饰const,可以让该变量禁止优化,再进行打印就可以体现出来了。

 四、空类的大小为1

 五、析构函数无限递归

六、析构函数顺序

C c;
void main()
{
A*pa=new A();
B b;
static D d;
delete pa;
}

首先要遵循的特点:先构造的后析构

        其次全局对象和静态对象生命周期和程序一致,程序在退出时才会销毁

        局部对象是在函数退出时销毁的,遇到delete肯定就调用对应的析构函数

所以,顺序应该先是delete析构A类对象,再析构局部成员对象B类对象b,最后析构D、C静态和全局对象。DC的顺序就按照析构函数最先的特点,先构造的后析构,也就是先析构D、再析构C。

 七、对象数组

假定有类 AB ,有相应的构造函数定义,能正确执行
AB a ( 4 ), b ( 5 ), c [ 3 ], * p [ 2 ] = { & a , & b };
语句,请问执行完此语句后共调用该类的构造函数次数为( ) 5次

 a b 分别就是俩个AB类的对象,而用  AB c[3]; 定义了一个大小为3的数组,数组中每个元素为一个AB类对象,至此调用五次构造函数,而后续的p指针数组,里面分别存放了a、b对象的地址,并没有新创建对象。

相关文章:

  • linux下OSD使用SDL_ttf生成点阵数据,移植+开发代码详解
  • 数据结构 day05
  • Node.js 版本与 npm 的关系及版本特性解析:从开源项目看演进
  • 执行js生成json文件并动态写入数据
  • MySQL一些常见的索引失效情况
  • 探索技术新边界:让 HTML 电子凭证与二维码、PDF 完美融合
  • 网络安全-攻击路径
  • 【Elasticsearch】通过运行时字段在查询阶段动态覆盖索引字段
  • 神经网络常见激活函数 11-ReLU6函数
  • CEYEE希亦除螨仪重塑专业级深层除螨,被誉为高端除螨仪的新标杆!
  • Git -> Git配置密钥对,并查看公钥
  • golangAPI调用deepseek
  • 【UE5】PeerStream像素流部署
  • 借用python 学习 VM的 FTP(VisionMaster4.3)
  • Spring Boot “约定大于配置”
  • 从零搭建微服务项目(第5章——SpringBoot项目LogBack日志配置+Feign使用)
  • 如何在 Tomcat 中屏蔽错误报告
  • C++学习笔记——模板入门
  • 15、Python面试题解析:列表推导式-条件推导与嵌套推导
  • Unity UI个人总结
  • 创业网站怎么做/seo推广哪家公司好
  • 北京政府网站建设/提交百度收录
  • 清远企业网站建设公司/网络营销推广实战宝典
  • wordpress建站需要写代码吗/代刷网站推广链接免费
  • 济南网站建设 伍际网络/网站排名优化多少钱
  • 做网站不切片可以吗/橙子建站官网