01 2020 档案
摘要:1. 应对所有队列操作进行并发控制以保证数据的正确性,比如可以采用信号量的方法。 2. 实现一种抽象数据类型之前,应该对其作出针对性的考察。
阅读全文
摘要:1. 在仅允许操作当前数据而又需要不断回溯历史数据的场景中,栈是最佳抽象数据类型。 2. 一般用序列容器 deque 来实现栈,它的效率和花销较为均衡。
阅读全文
摘要:1. 数组不能随着问题规模的增大而增加,而动态分配的数组需要手动管理内存,于是 vector 应运而生。 2. 向量所使用的内存来自动态存储区,由系统动态管理。 3. 一般应该传递引用或常量引用形式,避免进行大量复制操作。 4. 当能够预知向量最终长度时,应该直接指定长度,而不要连续使用 push_
阅读全文
摘要:1. 内存的每一个字节都有一个地址,变量的地址是首字节的地址。(比如一个 int 类型有 4 个字节,但是将第一个字节的地址作为整个变量的地址) 2. 数组名是一个常量指针。 3. 用 nullptr 来指示一个无效的内存地址。 4. 给函数传递指针,与传递引用可以起到相同的效果。但是引用比指针更容
阅读全文
摘要:1. 数组的大小声明符必须是一个常数或常量表达式。如果省略大小声明符,则必须提供一个初始化列表。 2. 如果数组被部分初始化,那么其余部分会自动被设置为 0 。 3. 基于范围的 for 循环可用于需要遍历数组所有元素的情形。但是需要使用数组下标时,就不能使用了。 4. 复制数组时,必须对元素进行逐
阅读全文
摘要:1. 面向过程编程是一种以执行程序操作的过程或函数为中心的方法。 2. 应该始终应大写字母作为类的开头。 3. 成员变量通常被设为私有,用来对它进行保护。然后创建公共函数,以便允许类外的代码进行访问。 4. 当一个类函数定义在类声明中时,被称为内联函数。内联函数通常很简短。 5. 内联函数将代码直接
阅读全文
摘要:1. 算法与数据结构应该以巧妙的方式结合起来,达到解决问题的目的,并提高效率。 2. 数据的静态组织和动态的操作算法,构成了ADT。一旦选择了某种数据结构,ADT的性能也可以确定。由此得知,抽象数据类型的挑选本质上是确定其数据结构。 3. 用数组存放数据,会出现空间超出不够用或浪费用不完的情况(即使
阅读全文
摘要:1. 不能简单的看语句的执行次数,时间复杂度才是评判标准。有时候粗看一种方案的某些语句执行较少,但实际上在大量数据操作时,时间复杂度便会较高。 2. 空间复杂度并不是简单的累加,而是要考虑算法执行过程中空间所能达到的最大用量。 3. 对固定的分支进行暴力搜索,一般会导致指数时间。组合算法一般有阶乘时
阅读全文
摘要:1. 在使用函数原型之后,函数定义的语句不必在意顺序问题。 2. 只能从函数返回一个值。如果要返回多个值,则必须以 “打包”的形式将它们视为单个值。(这里和语句一样,将多条语句放在大括号中,即可将语句块打包为一条语句。) 3. 全局数字变量会自动初始化为 0 ,全局字符变量会自动初始化为 NULL。
阅读全文
摘要:1. 可以用循环来验证输入。在循环前的第一次读取操作,称为启动读取,如果后续还需要继续读取,则语句应该在循环中。 2. 在实际编程应用中,不建议在 cout 语句中放置递增或递减运算符(因为容易出错)。 3. 需要计数时使用计数器,需要累计汇总时使用累加器。 4. 标记符号是一个特殊值,指示着值列表
阅读全文
摘要:1. 测试浮点数是否相等时,有可能会有错误结果。 2. 避免在嵌套块中使用同名变量。 3. 由于C字符串被定义为字符数组,所以需要用 strcmp 来比较。 4. 使用字符测试函数,需要#include<cctype>。 5. switch 语句可用来构建菜单驱动系统。 6. 必须用整数为枚举符号赋
阅读全文
摘要:1. 从键盘输入的字符会放在输入缓冲区,当 cin 读取时会自动转换成需要存储的类型。并在输入缓冲区中保留不能被读取的其余字符。 2. 可以用一条 cin 一句读入多个变量,这些变量也可以是不同类型的。 3. 计算数字的幂需要用到库函数 pow, 需要#include<cmath>。 4. stat
阅读全文
摘要:1. 预处理器在编译之前就读取程序,执行以#开头的行。#include指令使预处理器在程序中包含另一个文件的内容。 2. 用命名空间来组织程序实体的名称。 3. 数据流,可以理解为连续的“流”,输入时,将数据插入在输入流中,输出时,将数据插入在输出流中,在前方插入,就在前方显示。 4. 预处理器会将
阅读全文
摘要:1. cpu由控制单元和算数逻辑单元组成。控制单元负责协调计算机的操作,算数逻辑单元负责数学运算。 2. 当程序运行时,cpu进行提取 / 解码 / 执行 周期操作。 3. 内存被划分为字节,字节作为存储单元,每个字节都有一个唯一地址。 4 . 预处理器搜索以#开头的行,编译器将程序源代码转换为机器
阅读全文
摘要:题目: 在n × n 方阵里填入1,2,...,n × n。要求填成蛇形。例如,n = 4时方阵为: 10 11 12 1 9 16 13 2 8 15 14 3 7 6 5 4 上面的方阵中,多余的空格只是为了便于观察规律,不必严格输出。 n <= 8。 思路: 由题目可知,矩阵为方阵,因此用二维
阅读全文
摘要:题目: 有 n 盏灯,编号为 1 ~ n。第 1 个人把所有灯打开,第 2 个人按下所有编号为 2 的倍数的开关(这些灯将被关掉),第 3 个人按下所有编号为 3 的倍数的开关,以此类推。共有 k 个人,问最后有哪些灯开着。输入 n 和 k ,输出开着的灯的编号。 k <= n <= 1000。 样
阅读全文

浙公网安备 33010602011771号