C++ vector基本操作

本文介绍了C++中vector容器的基本定义与初始化方式,包括不同类型的初始化方法,并详细解释了vector常用的成员函数,如empty()、size()、push_back()等,以及vector之间的赋值和比较操作。

定义和初始化

注意所需要包含的头文件

使用 using namespace std; 可以省略std

#include<vector>

/* 初始状态为空 */
std::vector<typename> varname;
/* <圆括号>初始化num个vector,且值均为val */
std::vector<typename> varname(num, val);
/* <大括号>初始化列表 */
std::vector<typename> varname{val1, val2....};

vector的方法和属性

vector表示对象的集合,既然是对象,那就配有其对应的方法和属性,常用的主要有以下几种:

funcexp
v.empty()为空时,返回真
v.size()返回元素个数
v.push_back(elem)在尾端添加元素
v[n]返回n位置上元素的引用
v1 = v2把v2中的元素拷贝替换v1中的元素
v1 = {a, b, c …}初始化v1中对应的元素
v1 == v2v1和v2比较
v1 != v2必须保证元素个数相同,对应位置的数值相同
<, <=, >, >=比较大小,以字典顺序比较

编程习惯


编程实践


参考书籍:C++ Primer 5th

C++中的`std::vector`是一个非常常用的容器,它提供了动态数组的功能,能够根据需要自动调整大小。下面是一些`vector`的基本操作和使用方法: ### 创建和初始化`vector` - 创建一个空的`vector`: ```cpp std::vector<int> myVector; // 创建一个空的整数向量 ``` - 使用构造函数指定初始大小和值: ```cpp std::vector<int> second(4, 100); // 创建一个包含4个整数100的向量 ``` - 通过复制另一个`vector`来初始化: ```cpp std::vector<int> third = second; // 复制第二个向量 ``` - 移动另一个`vector`的内容来初始化(C++11及以上): ```cpp std::vector<int> fourth = std::move(second); // 转移第二个向量的内容[^1] ``` ### 向`vector`中添加元素 - 使用`push_back`在向量末尾添加元素: ```cpp myVector.push_back(5); // 在myVector末尾添加数字5 ``` - 使用迭代器范围初始化: ```cpp int a[6] = {1, 2, 3, 4, 5, 6}; std::vector<int> c(a, a+4); // 使用数组a的前四个元素初始化向量c[^4] ``` ### 访问`vector`中的元素 - 使用下标运算符访问元素: ```cpp for (int i = 0; i < v1.size(); i++) { std::cout << v1[i] << " "; // 通过索引访问元素[^2] } ``` - 使用`front`和`back`分别获取第一个和最后一个元素: ```cpp std::cout << "v1的第一个元素为:" << v1.front() << std::endl; // 获取第一个元素[^2] std::cout << "v1的最后一个元素为:" << v1.back() << std::endl; // 获取最后一个元素[^2] ``` ### `vector`的遍历 - 使用迭代器遍历`vector`: ```cpp for (std::vector<int>::iterator it = c.begin(); it != c.end(); it++) { b.push_back(*it); // 遍历c并将每个元素添加到b中[^4] } ``` ### `vector`的容量和大小 - 检查`vector`是否为空: ```cpp if (myVector.empty()) { std::cout << "向量是空的" << std::endl; } ``` - 获取`vector`的大小: ```cpp std::cout << "向量的大小是:" << myVector.size() << std::endl; ``` - 获取`vector`的最大可能大小: ```cpp std::cout << "向量的最大可能大小是:" << myVector.max_size() << std::endl; ``` - 调整`vector`的大小: ```cpp myVector.resize(10); // 将myVector的大小调整为10个元素 ``` ### `vector`的其他操作 - 清空`vector`: ```cpp myVector.clear(); // 清空所有元素 ``` - 交换两个`vector`的内容: ```cpp std::vector<int> temp; myVector.swap(temp); // 与temp交换内容 ``` - 检查两个`vector`是否相等: ```cpp std::cout << "third和fourth里面的元素是否完全相同:"; std::cout << std::boolalpha << (third == fourth) << std::endl; // 检查third和fourth是否相等[^1] ``` 这些基本操作构成了`std::vector`的核心功能,使得它可以灵活地用于各种数据处理场景。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值