C++ Vector使用示例代码分析
需积分: 5 67 浏览量
更新于2024-11-22
收藏 943B ZIP 举报
资源摘要信息:"C++ vector相关示例代码"
在C++编程语言中,vector是一个能够存放任意类型的动态数组,属于标准模板库(Standard Template Library,简称STL)中的一个容器。它能够存储连续的内存空间,允许在运行时动态的增加或减少元素的数量。vector由于其灵活性和方便性,在日常编程中被广泛使用。本示例将展示如何使用vector容器,包括创建、添加元素、遍历、删除元素以及如何使用其成员函数来管理数据。
### 1. vector的创建和初始化
在C++中,可以使用多种方式创建和初始化vector对象:
- 默认构造函数创建一个空的vector。
- 使用花括号初始化列表初始化vector。
- 通过拷贝已有的vector来创建新的vector。
- 使用迭代器范围构造vector。
示例代码如下:
```cpp
#include <iostream>
#include <vector>
int main() {
// 使用默认构造函数
std::vector<int> vec;
// 使用花括号初始化列表
std::vector<int> vec_init{1, 2, 3, 4, 5};
// 拷贝构造函数
std::vector<int> vec_copy(vec_init);
// 使用迭代器范围构造vector
std::vector<int> vec_range(vec.begin(), vec.begin() + 3);
return 0;
}
```
### 2. 添加元素
vector提供多种方式添加元素:
- 使用`push_back()`成员函数在vector末尾添加元素。
- 使用`insert()`成员函数在指定位置插入元素。
- 使用`resize()`成员函数改变vector大小,若新大小大于原大小,则在末尾添加新元素。
示例代码如下:
```cpp
// 继续main函数
vec.push_back(6); // 在末尾添加元素6
vec.insert(vec.begin(), 0); // 在开始位置插入元素0
// 调整vector大小,并在末尾添加元素7和8
vec.resize(vec.size() + 2, 7);
vec.resize(10, 8); // 新大小为10,多出位置用8填充
return 0;
```
### 3. 遍历vector
遍历vector中的元素可以使用多种方法:
- 使用基于索引的循环。
- 使用范围for循环。
- 使用迭代器。
示例代码如下:
```cpp
// 继续main函数
// 使用索引遍历
for(int i = 0; i < vec.size(); ++i) {
std::cout << vec[i] << ' ';
}
// 使用范围for循环遍历
for(auto& elem : vec) {
std::cout << elem << ' ';
}
// 使用迭代器遍历
for(auto it = vec.begin(); it != vec.end(); ++it) {
std::cout << *it << ' ';
}
return 0;
```
### 4. 删除元素
vector提供了几种删除元素的方法:
- 使用`pop_back()`成员函数移除vector的最后一个元素。
- 使用`erase()`成员函数移除指定位置的元素或指定范围内的元素。
- 使用`clear()`成员函数清除所有元素。
示例代码如下:
```cpp
// 继续main函数
vec.pop_back(); // 移除最后一个元素
// 使用erase删除元素,删除begin()到begin()+2范围内的元素
vec.erase(vec.begin(), vec.begin() + 2);
// 清除所有元素
vec.clear();
return 0;
```
### 5. 其他常用操作
vector提供很多其他有用的成员函数,例如:
- `size()`返回vector中的元素数量。
- `capacity()`返回vector的容量,即不进行内存重新分配的情况下vector所能容纳的元素的最大数量。
- `empty()`检查vector是否为空。
- `reserve()`请求vector容量至少能容纳指定数量的元素。
示例代码如下:
```cpp
// 继续main函数
int sz = vec.size(); // 获取元素数量
int cap = vec.capacity(); // 获取vector容量
bool is_empty = vec.empty(); // 检查vector是否为空
// 增加vector的容量为100
vec.reserve(100);
return 0;
```
### 结语
在C++中,vector是一个功能强大的容器,通过掌握其提供的各种操作,可以有效地进行数据的存储和管理。上述示例代码仅展示了部分常用操作,更多的细节和高级用法可在实际编程中进一步探索和应用。希望本示例能够帮助读者更好地理解和使用C++中的vector容器。
2021-07-16 上传
2021-07-16 上传
2021-07-16 上传
2021-07-16 上传
2021-07-16 上传
2021-07-14 上传
2021-07-14 上传
2021-07-14 上传
2021-07-14 上传
weixin_38635996
- 粉丝: 3
- 资源: 851
最新资源
- SimpleAdminBundle:使用 KISS 原则提供 Simple Admin
- 传感技术参考资料
- 6求职简历-word-文件-简历模版免费分享-应届生-高颜值简历模版-个人简历模版-简约大气-大学生在校生-求职-实习
- aiocoap:Python CoAP库
- 265个音频功放电路图(PDF版).zip
- msgpack-json:用于转换msgpack <=> json的Web API
- castigate:滥用 RubyRails 项目的每个修订版
- sidkiblawi.github.io:个人网站
- react-popup-yt
- zeta:CNCU的工具
- OAuth-2.0-framework-
- MYSQL学习笔记,代码演示.zip
- VC++产生程序序列号
- audio_thingy
- FlightsProject:航班管理系统允许公司(航空公司)为航班做广告,客户可以以优惠的价格选择最适合自己的航班
- gravity-forms-to-zendesk-ticket:Gravity Forms to Zendesk Ticket 是一个简单的 Wordpress functions.php 过滤器,用于将 Gravity Forms 字段传递给 Zendesk 票证,包括附件。 它利用 Zendesk v2 API、PHP 和 cURL