C++ 容器之 Vector
什么是 Vector?
向量(Vector)是一个封装了动态大小数组的顺序容器(Sequence Container)。
跟任意其它类型容器一样,它能够存放各种类型的对象。
可以简单的认为,向量是一个能够存放任意类型的动态数组。
容器特性
-
顺序序列
顺序容器中的元素按照严格的线性顺序排序。可以通过元素在序列中的位置访问对应的元素。 -
动态数组
支持对序列中的任意元素进行快速直接访问,甚至可以通过指针进行该操作。提供了在序列末尾相对快速地添加/删除元素的操作。 -
能够感知内存分配器的(Allocator-aware)
容器使用一个内存分配器对象来动态地处理它的存储需求。
基本函数
- 构造函数
- vector():构造一个空vector
- vector(int nSize):构造一个vector,元素个数为nSize
- vector(int nSize, const t& t):构造一个vector,元素个数为nSize,且值全为t
- vectore(const vector&):复制构造函数
- vector(begin, end):复制[begin, end)区间的数组元素到vector中
函数使用
实例 1 - push_back pop_back size clear
#include <iostream>
#include <vector> /* 导入向量头文件 */
using namespace std;
int main()
{
// 创建一个int类型的向量存储容器
vector<int> nums;
cout << "----------push_back----------" << endl;
for (int i = 0; i < 10; i++) {
// push_back(elem) 向数组最后添加元素
nums.push_back(i + 1);
cout << nums[i] << " ";
}
cout << endl << endl;
cout << "----------pop_back----------" << endl;
// pop_back() 去除数组最后一个元素
for (int i = 0; i < 5; i++) {
nums.pop_back();
}
// size() 容器中实际元素个数
for (int i = 0; i < nums.size(); i++) {
cout << nums[i] << " ";
}
cout << endl << endl;
cout << "----------clear----------" << endl;
// clear() 清除容器中的所有数据
nums.clear();
cout << "nums.size() = " << nums.size() << endl;
return 0;
}