一、vector介绍
vector是c++ STL(Standard Template Library)中的一个容器,它能够动态地增加或减少容器的大小,并且支持快速的随机访问。vector是一个模板类,所以可以存储任意类型的数据。
#include <vector>
using namespace std;
vector<int> v; //定义一个存储int类型的vector
二、vector的构造函数
vector还有一些构造函数,可以帮助我们更方便地创建vector,常用的构造函数如下:
(1)无参构造函数:vector()。创建一个空的vector。
(2)带参构造函数:vector(n, x)。创建一个大小为n的vector,每个元素的值都为x。
(3)带参构造函数:vector(iterator first, iterator last)。用[first, last)区间中的元素创建一个新的vector。
//创建一个大小为10的vector,每个元素的值都是3
vector<int> v1(10, 3);
//从数组a中的第2个元素开始,到第5个元素结束,创建一个新的vector
int a[] = {1, 2, 3, 4, 5};
vector<int> v2(a+1, a+5);
三、vector的方法和操作
vector提供了很多方法和操作,下面将一一介绍:
1.添加和删除元素
(1)push_back(x):向vector尾部添加一个元素x。
(2)pop_back():删除vector尾部的一个元素。
//给vector添加元素
v.push_back(10); //添加一个元素10
v.push_back(20); //添加一个元素20
//删除vector尾部的一个元素
v.pop_back();
2.访问元素
(1)operator[]:可以像访问数组一样访问vector中的元素。
(2)at(i):访问vector中下标为i的元素,如果下标越界,会抛出一个out_of_range异常。
//访问vector中的元素
v[0] = 5; //将第一个元素赋值为5
v[1] = 6; //将第二个元素赋值为6
//访问vector中的元素并修改
cout << v.at(0) << endl; //输出第一个元素的值
cout << v.at(1) << endl; //输出第二个元素的值
3.查找和排序
(1)find(x):查找vector中是否存在一个元素x,如果找到了,返回该元素的迭代器;如果没有找到,返回vector的尾迭代器end()。
(2)sort():将vector中的元素按照从小到大的顺序排序。
//查找vector中某个元素
if (find(v.begin(), v.end(), 10) != v.end())
cout << "Found!" << endl;
else
cout << "Not found!" << endl;
//对vector中的元素进行排序
sort(v.begin(), v.end());
4.其他操作
(1)size():返回vector中元素的个数。
(2)empty():判断vector是否为空,如果为空返回true,否则返回false。
(3)clear():删除vector中所有的元素。
//输出vector的元素个数
cout << v.size() << endl;
//判断vector是否为空
if (v.empty())
cout << "Vector is empty." << endl;
else
cout << "Vector is not empty." << endl;
//删除vector中的元素
v.clear();
四、实战演示
下面是使用vector实现一个数组的例子。
#include <iostream>
#include <vector>
using namespace std;
int main()
{
vector<int> v(10, 0); //创建一个大小为10的vector,元素初始值为0
for (int i = 0; i < v.size(); i++)
v[i] = i + 1; //给vector中的元素赋值
for (int i = 0; i < v.size(); i++)
cout << v[i] << " "; //输出vector中的元素
return 0;
}
五、总结
本文详细介绍了c++ STL中的vector头文件的使用方法和常见操作,vector是一个非常实用的容器,在c++开发中经常会用到,希望本文对大家学习和使用vector有所帮助。