"掌握vector的基本用法及常见函数,轻松操作动态数组"
版权申诉
109 浏览量
更新于2024-04-04
收藏 289KB PDF 举报
容器vector称做向量,相当于可以动态改变大小的数组,使用方法简单。vector里提供了大量的函数,许多函数在STL的不同容器里用法基本相同,熟悉了vector再掌握其容器会变得简单。下面将介绍vector的常用方法。
首先,可以通过以下方式进行定义和赋值:
```cpp
vector<int> viCount; // 定义一个空的整型vector
vector<int> viLen[10]; // 定义一个大小为10的整型vector数组
vector<string> vsZqdm; // 定义string型的vector
// 定义一个struct的vector
typedef struct {
char szZqdm[7];
char szZqmc[9];
} ZQXX;
vector<ZQXX> vZqdm;
```
需要注意的是,在定义`vector<string>`后,VC6里可能会出现4786的警告信息,可以使用相关方法来避免。接下来,介绍一些vector的常用方法。
1. `push_back()`: 在vector的末尾添加一个元素。
```cpp
vector<int> vec;
vec.push_back(1);
```
2. `pop_back()`: 删除vector末尾的一个元素。
```cpp
vector<int> vec = {1, 2, 3};
vec.pop_back();
```
3. `size()`: 返回vector中元素的个数。
```cpp
vector<int> vec = {1, 2, 3};
int size = vec.size(); // size is 3
```
4. `clear()`: 清空vector中的所有元素。
```cpp
vector<int> vec = {1, 2, 3};
vec.clear(); // vector becomes empty
```
5. `empty()`: 返回vector是否为空,为空返回true,否则返回false。
```cpp
vector<int> vec;
bool isEmpty = vec.empty(); // isEmpty is true
```
6. `at()`: 访问vector中的指定位置的元素。
```cpp
vector<int> vec = {1, 2, 3};
int element = vec.at(1); // element is 2
```
7. `insert()`: 在vector的指定位置插入一个元素。
```cpp
vector<int> vec = {1, 3, 4};
vec.insert(vec.begin() + 1, 2); // vector becomes {1, 2, 3, 4}
```
8. `erase()`: 删除vector中指定位置的元素。
```cpp
vector<int> vec = {1, 2, 3};
vec.erase(vec.begin() + 1); // vector becomes {1, 3}
```
9. `begin()`和`end()`: 获取vector的起始和结束迭代器。
```cpp
vector<int> vec = {1, 2, 3};
auto start = vec.begin(); // start points to the beginning
auto end = vec.end(); // end points to the end
```
以上是vector的一些常用方法,掌握了这些方法可以更加灵活地操作vector容器。通过不断练习和实践,对vector的使用会变得更加熟练,帮助提升编程效率和准确性。愿以上内容可以帮助你更好地理解和应用vector容器。
2021-02-25 上传
2024-04-13 上传
2009-06-25 上传
2020-09-10 上传
2022-06-05 上传
2023-02-13 上传
G11176593
- 粉丝: 6857
- 资源: 3万+
最新资源
- 构建基于Django和Stripe的SaaS应用教程
- Symfony2框架打造的RESTful问答系统icare-server
- 蓝桥杯Python试题解析与答案题库
- Go语言实现NWA到WAV文件格式转换工具
- 基于Django的医患管理系统应用
- Jenkins工作流插件开发指南:支持Workflow Python模块
- Java红酒网站项目源码解析与系统开源介绍
- Underworld Exporter资产定义文件详解
- Java版Crash Bandicoot资源库:逆向工程与源码分享
- Spring Boot Starter 自动IP计数功能实现指南
- 我的世界牛顿物理学模组深入解析
- STM32单片机工程创建详解与模板应用
- GDG堪萨斯城代码实验室:离子与火力基地示例应用
- Android Capstone项目:实现Potlatch服务器与OAuth2.0认证
- Cbit类:简化计算封装与异步任务处理
- Java8兼容的FullContact API Java客户端库介绍