Skip to content

Commit

Permalink
update
Browse files Browse the repository at this point in the history
  • Loading branch information
Shujia Huang authored and Shujia Huang committed Feb 9, 2022
1 parent 5adfc0a commit bbcda5e
Showing 1 changed file with 6 additions and 4 deletions.
10 changes: 6 additions & 4 deletions practice/attention.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,8 @@
乱码中藏着 `*/`,匹配错了,导致 IDE 实际注释的部分并非肉眼所见,定位极其困难,常见于Windows中。


2. 如果要用 `std::sort()` 排序尽量对索引或者指针 `sort`,而不是针对对象本身,因为如果对象比较大,交换(复制)对象比交换指针或索引更耗费时间和资源。
2. 如果要用 `std::sort()` 排序尽量对索引或者指针 `sort`,而不是针对对象本身,因为如果对象比较大,交换(复制)
对象比交换指针或索引更耗费时间和资源。

3. 永不停歇的循环问题

Expand Down Expand Up @@ -36,8 +37,8 @@ for (auto idx = vec.size(); idx >= 0; idx--) {

绝大多数情况下,用 `int``long` 就很好,`long` 一般等于机器字长,能直接放到寄存器,硬件处理起来速度也通常更快。

我们希望用 `short`, `char` 达到减少结构体大小的目的。但是由于字节对齐的原因,可能并不能真正减少大小,而且1,2个字节的整型位数太少,一不小心就溢出了,需要特别注意。除非我们需要面对存储大小非常敏感的场景,比如网络之类的。

我们希望用 `short`, `char` 达到减少结构体大小的目的。但是由于字节对齐的原因,可能并不能真正减少大小,而且1,2个字节的整型
位数太少,一不小心就溢出了,需要特别注意。除非我们需要面对存储大小非常敏感的场景,比如网络之类的。
局部变量更没有必要用(unsigned) short,char等,栈是自动伸缩的,它既不节省空间,还危险,还慢。

5. 浮点数判断是否相等问题 (**这个问题要再验证一下,好像不是这样了**)
Expand All @@ -53,7 +54,8 @@ if (abs(f - 0.2) < 0.00001) {} // 正确用法

## 指针与动态内存分配

1. 动态内存分配时,`malloc`-`free``new`-`delete` 应各自搭对编写。最大程度避免使用完内存之后,出现忘记归还给操作系统,导致内存泄露的情况。
1. 动态内存分配时,`malloc`-`free``new`-`delete` 应各自搭对编写。最大程度避免使用完内存之后,出现忘记归还给操作系统,
导致内存泄露的情况。

2. `free``delete` 之后,相应指针必须立刻设置为 `NULL`,否则原指针就成了一个**野指针**,它所指向的内容将是无法预料的。

Expand Down

0 comments on commit bbcda5e

Please sign in to comment.