C++ vector 容器使用
vector 作用在此不做解释了
使用需要引入头文件 #include <vector>
自带函数如下
1.push_back 在容器的最后添加一个数据
2.pop_back 去掉容器的最后一个数据
3.at 得到下标位置的数据
4.begin 得到容器第一个数据的指针
5.end 得到容器最后一个数据下一个的指针
6.front 得到容器第一个数据的引用
7.back 得到容器最后一个数据的引用
8.max_size 得到容器最大可以存放数据个数
9.capacity 当前vector分配的空间可以存储数据个数
10.size 当前存储的数据个数
11.resize 改变容器可以存储数据个数
12.reserve 改变容器分配空间的大小
13.erase 删除指针指向的数据项
14.clear 清空当前的vector
15.rbegin 返回容器数据反转后的开始指针(原来的end - 1)
16.rend 返回容器反转后结束指针(原来的begin - 1)
17.empty 判断容器是否为空
18.swap 与另一个容器交换数据
// vector 运用实例如下
// Pro1.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include <vector>
using namespace std;
int main()
{
// 定义 存储 int 数据类型的 容器
vector<int> intVec;
// 判断容器是否为空
if (intVec.empty())
{
std::cout << "intVec 为空" << endl;
}
//设置容器 intVec 预留 10个存储空间,
intVec.reserve(10);
for (int i = 0; i < 5; ++i)
{
// 在 intVec 的最后添加一个数据
intVec.push_back(i);
}
// intVec 存储了几个数据
int size = intVec.size();
std::cout << "size : " << size << endl;
// 当前 intVec 分配的存储大小
// size() 是当前存储的数据个数, capacity() 是 intVec 可以存储的个数
// capacity >= size
// 当添加数据存储空间不足时,会自动扩展一批存储空间,此时 capacity()变大
int capacity = intVec.capacity();
std::cout << "capacity : " << capacity << endl;
// 获取第一个数据指针
//intVec.begin();
// 获取最后一个数据 + 1 的指针
// intVec.end()
// 使用迭代器遍历访问数据
vector<int>::iterator it;
// 在第 2 个位置插入数据 100
intVec.insert(intVec.begin() + 2, 100);
// intVec 存储了几个数据
size = intVec.size();
std::cout << "size_ : " << size << endl;
for (it = intVec.begin(); it != intVec.end(); ++it)
{
std::cout << *it << endl; // 0, 1, 100, 2, 3, 4
}
// 删除第 3 个数据
intVec.erase(intVec.begin() + 3);
// intVec 存储了几个数据
size = intVec.size();
std::cout << "size__ : " << size << endl;
// 删除区间 intVec.begin() 到 intVec.begin() + 2 内的数据
intVec.erase(intVec.begin(), intVec.begin() + 2);
// intVec 存储了几个数据
size = intVec.size();
std::cout << "size___ : " << size << endl;
// 删除最后一个数据
intVec.pop_back();
// 获取第 0 个数据
int n = intVec.at(0);
// 获取数组头的引用
n = intVec.front();
// 可以将 front() 作为左值使用
// 设置第 0 个数据的值为 1000
intVec.front() = 1000;
std::cout << "front : " << intVec.front() << endl;
// 获取最后一个数据的引用
n = intVec.back();
n = 555;
std::cout << "back : " << intVec.back() << endl;
// 设置容器的长度为 n,使其能容纳 n 个数据
// 如果 n 小于容器当前 size,则删除多余的数据
// 否则将容器长度扩充为 n,新添加空间填充初始化数据
intVec.resize(15);
// 同上,默认将新添加空间数据设置为 1
intVec.resize(20, 1);
size = intVec.size();
std::cout << "size____ : " << size << endl;
// 清空所有数据
intVec.clear();
intVec.reserve(10);
for (int i = 0; i < 5; ++i)
{
// 在 intVec 的最后添加一个数据
intVec.push_back(i);
}
// 最大能存储数据个数
size = intVec.max_size();
std::cout << "max_size : " << size << endl;
system("pause");
return 0;
}
运行结果如下
来源:CSDN
作者:liqiangeastsun
链接:https://blog.csdn.net/LIQIANGEASTSUN/article/details/50569964