当前位置: 首页 > 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对象的地址,并没有新创建对象。

http://www.dtcms.com/a/16248.html

相关文章:

  • 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个人总结
  • jsp页面跳转失败
  • 云原生周刊:DeepSeek 颠覆人工智能
  • R语言的软件开发工具
  • 通达信如何导出以往的分时数据
  • Dockfile语法
  • STC 51单片机62——极简 4x4x4光立方
  • 排序之选择排序(C# C++)
  • 蓝桥杯-洛谷刷题-day5(C++)(为未完成)
  • COMDEL电源CDX1000 13.56MHz 2MHz DUAL RF GENERATOR手侧
  • 天地图(uniapp)搜索、定位自己、获取标记点的经纬度