C++ vector容器
vector就像数组一样是一种数据结构,如果把数组比作一个袋子的话,那vector就可以比作是“如意袋”与与数组不同的是,vector可以在程序运行的过程中不断地改变它的大小是他能够动态的存取数据,同时我们也可以用循环语句for来遍历vector中的元素。下面我会为大家介绍一下vector的一些用法,让你加深对vector的理解。
注意
在使用vector时你应该包含如下头文件。
#include <vector>
创建容器
回顾一下,我们是如何创建一个变量的,变量类型 变量名;
int a;//创建一个整型变量a
double b;//创建一个浮点型变量b
char c;//创建一个字符型变量c
我们也是同样的方式创建一个vector变量
vector<int> arr;//这样我们就创建了一个整型空的容器名字为arr
vector<double> arr;//这样我们就创建了一个浮点型空的容器名字为arr
vector<char> arr;//这样我们就创建了一个字符型空的容器名字为arr
除此之外我们还可以创建一个容纳指针元素的容器;
vector<int *> arr;
初始化
//第一种初始化的方式
vector<int> vec; // 默认初始化一个空的 vector
vec = {1, 2, 3, 4};
//第二种初始化的方式
vector<int> vec2 = {1, 2, 3, 4}; // 初始化一个包含元素的 vector
也可以在创建时指定初始大小和初始值
vector<int> myVector(5); // 创建一个包含 5 个整数的 vector,每个值都为默认值(0)
vector<int> myVector(5, 10); // 创建一个包含 5 个整数的 vector,每个值都为 10
元素添加
可以使用push_back方法向vector中添加元素:
myVector.push_back(7); // 将整数 7 添加到 vector 的末尾
获取元素
可以使用下标操作符[]或at()方法访问vector中的元素
int value_1 = myVector[0];//获取第一个元素
int value_2 = myVector.at(1);//获取第二个元素
获取vector的大小
可以使用size()方法获取vector中元素的数量:
int size = myVector.size(); // 获取 vector 中的元素数量
迭代访问
可以使用迭代器遍历vector中的元素
for (auto it = myVector.begin(); it != myVector.end(); ++it) {
std::cout << *it << " ";
}
还可以用第二种方式,范围循环
for (int element : myVector) {
std::cout << element << " ";
}
删除元素
可以使用erase()方法删除vector中的元素:
myVector.erase(myVector.begin() + 2); // 删除第三个元素
可以使用clear()方法清空vector中的所有元素
myVector.clear();//清空vector
实例
#include <iostream>
#include <vector>
using namespace std;
int main() {
//容器的创建,与初始化
vector<int> myVector1, myVector2 = { 1, 2, 3, 4 };
myVector1 = { 1, 2, 1, 9 };
vector<int> myVector3(5);// 创建一个包含 5 个整数的 vector,每个值都为默认值(0)
vector<int> myVector4(5, 10); // 创建一个包含 5 个整数的 vector,每个值都为 10
//向myVector1中添加元素前
//遍历方式一
cout << "向myVector1中添加元素前";
for (int element : myVector1) {
std::cout << element << " ";
}
//向myVector1中添加元素
myVector1.push_back(1314);
cout << endl;
//向myVector1中添加元素后
//遍历方式二
cout << "向myVector1中添加元素后";
for (auto it = myVector1.begin(); it != myVector1.end(); ++it) {
std::cout << *it << " ";
}
cout << endl;
//获取myVector3容器的大小
cout << "获取myVector3容器的大小:" << myVector3.size() << endl;
//获取容器中元素
cout << "获取myVector2容器中的元素:" << myVector2.at(2) << endl;
cout << "获取myVector2容器中的元素:" << myVector2[0] << endl;
//删除myVector2前容器的大小
cout << "删除myVector2前容器的大小" << myVector2.size() << endl;
// 删除第三个元素
myVector2.erase(myVector2.begin() + 2);
//删除myVector2后容器的大小
cout << "删除myVector2后容器的大小" << myVector2.size() << endl;
//删除myVector2第三个元素,第三个元素是啥
cout << "删除myVector2第三个元素,第三个元素是啥:" << myVector2[2] << endl;
//清除myVector2的所有元素
myVector2.clear(); // 清空 vector
//清除myVector2容器后的大小
cout << "清除myVector2容器后的大小:" << myVector2.size() << endl;
return 0;
}
运行结果如下
向myVector1中添加元素前1 2 1 9
向myVector1中添加元素后1 2 1 9 1314
获取myVector3容器的大小:5
获取myVector2容器中的元素:3
获取myVector2容器中的元素:1
删除myVector2前容器的大小4
删除myVector2后容器的大小3
删除myVector2第三个元素,第三个元素是啥:4
清除myVector2容器后的大小:0
C:\Users\cjwlu\Desktop\henanligongdaxue\Project1\x64\Debug\Project1.exe (进程 23092)已退出,代码为 0 (0x0)。
要在调试停止时自动关闭控制台,请启用“工具”->“选项”->“调试”->“调试停止时自动关闭控制台”。
按任意键关闭此窗口. . .
原文地址:https://blog.csdn.net/2401_82772407/article/details/143787677
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!