c++高效动态数组函数补充
时间: 2023-10-18 08:20:01 浏览: 117
以下是一些 C++ 中高效动态数组函数的补充:
1. `reserve()`:该函数用于预留一定大小的内存空间,以便后续向数组中添加元素时不需要频繁地重新分配内存。例如:
```c++
vector<int> v;
v.reserve(1000); // 预留1000个元素的空间
```
2. `shrink_to_fit()`:该函数用于释放多余的内存空间,以便数组占用的内存尽可能少。例如:
```c++
vector<int> v;
v.reserve(1000);
// 假设后续只向数组中添加了10个元素
v.shrink_to_fit(); // 释放多余的990个元素的空间
```
3. `resize()`:该函数用于调整数组的大小,可以同时指定新的大小和默认值。例如:
```c++
vector<int> v;
v.resize(10); // 将数组大小调整为10,新元素默认值为0
v.resize(20, 1); // 将数组大小调整为20,新元素默认值为1
```
4. `emplace_back()`:该函数用于在数组的末尾添加一个元素,可直接使用参数创建该元素。与 `push_back()` 不同的是,`emplace_back()` 可以避免拷贝构造函数的调用,因此效率更高。例如:
```c++
vector<string> v;
v.emplace_back("hello"); // 直接创建一个字符串添加到数组末尾
```
5. `insert()`:该函数用于在数组中指定位置插入元素,可以同时插入多个元素。例如:
```c++
vector<int> v = {1, 2, 3, 4, 5};
v.insert(v.begin() + 2, 6); // 在数组下标为2的位置插入一个元素6
v.insert(v.begin() + 3, 2, 7); // 在数组下标为3的位置插入两个元素7
```
以上这些函数可以帮助我们更加高效地使用动态数组,提高程序的性能。
阅读全文