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

原创文章,作者:QWBRA,如若转载,请注明出处:https://www.506064.com/n/372493.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
QWBRAQWBRA
上一篇 2025-04-24 06:40
下一篇 2025-04-24 06:40

相关推荐

  • Linux sync详解

    一、sync概述 sync是Linux中一个非常重要的命令,它可以将文件系统缓存中的内容,强制写入磁盘中。在执行sync之前,所有的文件系统更新将不会立即写入磁盘,而是先缓存在内存…

    编程 2025-04-25
  • 神经网络代码详解

    神经网络作为一种人工智能技术,被广泛应用于语音识别、图像识别、自然语言处理等领域。而神经网络的模型编写,离不开代码。本文将从多个方面详细阐述神经网络模型编写的代码技术。 一、神经网…

    编程 2025-04-25
  • Linux修改文件名命令详解

    在Linux系统中,修改文件名是一个很常见的操作。Linux提供了多种方式来修改文件名,这篇文章将介绍Linux修改文件名的详细操作。 一、mv命令 mv命令是Linux下的常用命…

    编程 2025-04-25
  • Python输入输出详解

    一、文件读写 Python中文件的读写操作是必不可少的基本技能之一。读写文件分别使用open()函数中的’r’和’w’参数,读取文件…

    编程 2025-04-25
  • nginx与apache应用开发详解

    一、概述 nginx和apache都是常见的web服务器。nginx是一个高性能的反向代理web服务器,将负载均衡和缓存集成在了一起,可以动静分离。apache是一个可扩展的web…

    编程 2025-04-25
  • MPU6050工作原理详解

    一、什么是MPU6050 MPU6050是一种六轴惯性传感器,能够同时测量加速度和角速度。它由三个传感器组成:一个三轴加速度计和一个三轴陀螺仪。这个组合提供了非常精细的姿态解算,其…

    编程 2025-04-25
  • 详解eclipse设置

    一、安装与基础设置 1、下载eclipse并进行安装。 2、打开eclipse,选择对应的工作空间路径。 File -> Switch Workspace -> [选择…

    编程 2025-04-25
  • Python安装OS库详解

    一、OS简介 OS库是Python标准库的一部分,它提供了跨平台的操作系统功能,使得Python可以进行文件操作、进程管理、环境变量读取等系统级操作。 OS库中包含了大量的文件和目…

    编程 2025-04-25
  • Java BigDecimal 精度详解

    一、基础概念 Java BigDecimal 是一个用于高精度计算的类。普通的 double 或 float 类型只能精确表示有限的数字,而对于需要高精度计算的场景,BigDeci…

    编程 2025-04-25
  • git config user.name的详解

    一、为什么要使用git config user.name? git是一个非常流行的分布式版本控制系统,很多程序员都会用到它。在使用git commit提交代码时,需要记录commi…

    编程 2025-04-25

发表回复

登录后才能评论