vector基础语法
时间: 2024-11-29 17:15:22 浏览: 6
在 C++ 中,`std::vector` 是一个非常重要的容器,它是一个动态数组,可以自动管理内存,允许在运行时动态增加或减少其容量。以下是 `vector` 的一些基础语法:
1. **创建**:
```cpp
std::vector<T> vec; // 创建一个空的 vector,T 代表元素类型
std::vector<T> vec(size); // 初始化一个固定大小的 vector,size 是初始容量
std::vector<T> vec(initializer_list<T>); // 从列表创建 vector
```
2. **访问元素**:
- 下标访问:`vec[index]`,下标从 0 开始。
- 获取大小(元素个数):`vec.size()`。
- 遍历:`for (auto& element : vec) { ... }`,`element` 是当前迭代的元素。
3. **修改元素**:
- 修改单个元素:`vec[index] = value;`
- 插入或替换:`vec.insert(pos, value)` 或 `vec[pos] = value`,`pos` 是插入位置。
4. **删除元素**:
- 删除指定元素:`vec.erase(pos)`,`pos` 是元素的索引。
- 清空:`vec.clear();` 或直接赋空`vec = {}`。
5. **追加和扩展**:
- 追加元素:`vec.push_back(value)`。
- 扩展容量:`vec.resize(new_size);` 如果需要更大的空间,会自动扩展。
6. **迭代器**:
- `iterator` 类型用于访问 vector 内部的元素,如 `iterator begin()` 返回第一个元素的迭代器,`end()` 返回结束迭代器。
7. **性能注意事项**:
- 如果频繁增删元素,`push_back` 和 `erase` 会有较高的开销,因为它们可能导致内部数据结构的移动。对于这样的场景,`std::list` 或其他更高效的容器可能是更好的选择。
**相关问题--:**
1. 如何检查 vector 是否为空?
2. 怎么避免 resize 引发不必要的内存拷贝?
3. vector 与数组有哪些区别?
阅读全文