您的位置:

c++ vector头文件详解

一、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有所帮助。