05 2021 档案
摘要:内存对齐 为什么要对齐: 1)平台移植性: 某些平台读取内存是以2kb,4kb为单位的。有些平台不支持任意地址的访问。 2)高效性,数据结构,应该尽可能在自然边界上对齐,未对齐访问会多几次访问。 主要跟硬件设计有关。 内存对齐的规则: struct node{ char a; int b; shor
阅读全文
摘要:概念: windows中程序的窗口和系统调用的实现模式都是通过一种消息机制来完成的。 窗口调用系统接口,系统发送消息给窗口,窗口轮询消息并处理。 SendMessage阻塞的,需要等待消息处理函数结束才返回。 PostMessage非阻塞的,只是将消息放入消息队列即返回。 Windows窗口程序的实
阅读全文
摘要:线程的概念 线程的组成: 栈区和栈区指针 程序计数器:PC 寄存器集合 线程的状态: 新建状态(New):刚被创建 准备状态(Runnable):加载所需的所有资源,等待CPU 运行状态(Running):被CPU执行 挂起状态(Blocked):阻塞,等待唤醒 退出状态: 线程和进程的区别: 1.
阅读全文
摘要:异常机制简介: 语法: try{ throw exp; } catch (Exp exp){ ... } 1. 在需要抛出异常的代码段外用try包裹住。 2. 在try内部,需要抛出异常的地方调用 ‘throw + 表达式’,程序不再执行throw后面的代码,直接跳转到catch处,与catch处进
阅读全文
摘要:1. ‘sizeof’ 的实质 sizeof可以接受变量和数据类型,并以字节为单位返回该类型所占内存的大小。 使用方式:1. sizeof(数据类型或变量) 2. sizeof 变量 sizeof不是一个函数(一般函数无法接受数据类型作为参数;函数只能通过括号传递参数,而sizeof可以通过空格加参
阅读全文
摘要:问题: 求n以内所有素数,一般的做法是: 1. 遍历2-n之间所有的数i 2. 每个数i再遍历所有小于它的数看是否能被小于它的某个数整除,如果可以者该数i有可以被整除的数则是和数,没有则是素数。 两层for循环,时间复杂度高。 解法一:素数筛 思想:用素数去标记合数,例如,已知最小的素数是2,那么2
阅读全文
摘要:1. 工厂模式是什么: 把创建对象的过程比作一个工厂中生产产品的过程,即在一个工厂中(工厂类)统一创建不同类型的产品(对象)。 利用了C++面向对象中的继承来实现。 2. 工厂模式为了解决什么问题: 1). 不同的类,需要不同的创建过程。如不同种类的动物,根据不同的场景会写下如下条件分支的代码: i
阅读全文
摘要:string 1. string的size(), length()返回的大小包括截至符吗?sizeof求数组呢?strlen()函数呢? char arr[] = "abcde"; int arraysize = sizeof(arr); // 6 int strlensize = strlen(a
阅读全文
摘要:为什么会有单例模式? 在程序中对于某个类只想有一个对象,并且要限制对象的创建时会用到单例模式。 单例模式实现了:程序全局都可以共享使用一个单例对象,有方便的接口可以获取这个单例对象,禁止创建这个单例类的对象,只能通过设计的接口来使用。 实现方式 做到一下几点就可以实现单例模式: 1. 私有化构造函数
阅读全文
浙公网安备 33010602011771号