Skip to content

Commit b4c33d8

Browse files
committed
Update public notes
1 parent c0d9c30 commit b4c33d8

File tree

1 file changed

+14
-3
lines changed

1 file changed

+14
-3
lines changed

content/编程相关/编程语言/Cpp 之旅 第三版 读书笔记.md

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1134,8 +1134,19 @@ regex_token_iterator:遍历未匹配部分
11341134
11351135
### vector
11361136
1137-
vector (动态数组) 是最有用的标准库容器。
1137+
> 最有用的标准库容器当属vector(动态数组)。vector就是一个给定类型元素的序列,元素在内存中是连续存储的。典型的vector实现(5.2.2节、6.2节)会包含一个句柄,保存指向首元素的指针,还会包含指向尾元素之后位置的指针以及指向所分配空间之后位置的指针(或者是等价的指针外加偏移量)(13.1节):
11381138
1139-
vector 元素在内存中是连续存储的
1139+
vector 包含了一个分配器 alloc,vector 通过分配器为元素分配内存空间。默认的分配器用 new 和 delete 分配和释放内存
11401140
1141-
vector 包含了一个分配器 alloc,vector 通过分配器为元素分配内存空间。
1141+
vector 的元素构成了一个范围,可以使用范围 for 语句。
1142+
1143+
可以用圆括号进行另一种初始化:
1144+
1145+
```cpp
1146+
vector<Shape*> v3(23); //尺寸 23, 初始值 nullptr
1147+
vecotr<double> v4(32, 9.9); // 尺寸 32, 初始值 9.9
1148+
```
1149+
1150+
> 标准库vector非常灵活且高效,应当将它作为默认容器。也就是说,除非有充分的理由使用其他容器,否则应使用vector。如果你的理由是“效率”,请进行性能测试一一我们在容器使用性能方面的直觉通常是很不可靠的。
1151+
1152+
#todo

0 commit comments

Comments
 (0)