"掌握vector的基本用法及常见函数,轻松操作动态数组"
版权申诉
53 浏览量
更新于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容器。
点击了解资源详情
点击了解资源详情
点击了解资源详情
2022-10-27 上传
2022-11-13 上传
2021-02-25 上传
2009-06-25 上传
2020-09-10 上传
2024-04-13 上传
G11176593
- 粉丝: 6876
- 资源: 3万+
最新资源
- 火炬连体网络在MNIST的2D嵌入实现示例
- Angular插件增强Application Insights JavaScript SDK功能
- 实时三维重建:InfiniTAM的ros驱动应用
- Spring与Mybatis整合的配置与实践
- Vozy前端技术测试深入体验与模板参考
- React应用实现语音转文字功能介绍
- PHPMailer-6.6.4: PHP邮件收发类库的详细介绍
- Felineboard:为猫主人设计的交互式仪表板
- PGRFileManager:功能强大的开源Ajax文件管理器
- Pytest-Html定制测试报告与源代码封装教程
- Angular开发与部署指南:从创建到测试
- BASIC-BINARY-IPC系统:进程间通信的非阻塞接口
- LTK3D: Common Lisp中的基础3D图形实现
- Timer-Counter-Lister:官方源代码及更新发布
- Galaxia REST API:面向地球问题的解决方案
- Node.js模块:随机动物实例教程与源码解析