C++中的vector中erase用法实例代码

C++中的vector中erase用法实例代码

简介

在C++中,vector是一种非常常用的容器,它可以动态地管理内存,能够随时加入或者删除元素。vector的erase方法是其中非常常用的函数之一,通过该函数我们可以删除vector中的元素。

使用方法

vector中的erase函数有多种使用方法,其中比较常用的有两种,分别是通过迭代器和通过下标。下面将分别进行说明。

通过迭代器删除元素

我们可以通过迭代器删除vector中的元素,这样可以比较灵活地删除任意位置的元素,其语法如下:

iterator erase (iterator position);
iterator erase (const_iterator position);

其中,position即为欲删除元素的位置。该方法返回指向删除元素之后的下一个元素的迭代器。

下面是一个使用迭代器删除元素的例子,我们初始化一个含有5个元素的vector,然后删除第3个元素:

#include <iostream>
#include <vector>

int main()
{
    std::vector<int> vec{1, 2, 3, 4, 5};

    auto it = vec.begin() + 2; // 获取第3个元素的迭代器
    vec.erase(it); // 删除第3个元素

    for (auto i : vec) {
        std::cout << i << " ";
    }

    return 0;
}

输出结果为:

1 2 4 5

通过下标删除元素

我们也可以通过下标删除vector中的元素,其语法如下:

iterator erase (iterator first, iterator last);
iterator erase (const_iterator first, const_iterator last);

其中,first和last即为欲删除元素的区间,即[first, last)。

下面是一个使用下标删除元素的例子,我们初始化一个含有5个元素的vector,然后删除第3个元素:

#include <iostream>
#include <vector>

int main()
{
    std::vector<int> vec{1, 2, 3, 4, 5};

    vec.erase(vec.begin() + 2); // 删除第3个元素

    for (int i = 0; i < vec.size(); ++i) {
        std::cout << vec[i] << " ";
    }

    return 0;
}

输出结果为:

1 2 4 5

总结

vector中的erase函数能够方便地删除vector中的元素,它的使用方法也比较灵活。在使用时,我们需要根据自己的实际需求来选择适合自己的删除方法,以达到最佳效果。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C++中的vector中erase用法实例代码 - Python技术站

(0)
上一篇 2023年5月23日
下一篇 2023年5月23日

相关文章

  • 详解Qt中线程的使用方法

    详解Qt中线程的使用方法 为什么需要使用线程? 在图形界面应用程序开发中,为了避免用户与界面卡住,我们常常需要将耗时的任务放到新的线程中执行。这样可以让界面不卡住,从而更好的提升用户体验。 Qt中线程的使用方法 Qt中线程的使用方法主要可以分为两种:继承QThread类和继承QRunnable接口。 继承QThread类 继承QThread类是一种常见的线程…

    C 2023年5月22日
    00
  • Golang异常处理之优雅地控制和处理异常

    Golang异常处理之优雅地控制和处理异常 异常处理的背景 在编写Golang程序时,难免会遇到各种各样的异常情况,例如网络连接中断、文件读取失败、空指针异常等等。这些异常情况可能会导致程序崩溃或数据丢失,因此我们需要对这些异常情况进行有效的处理,而这就是Golang的异常处理机制所要解决的问题。 与传统的错误处理不同的是,Golang提供了一种更加优雅的异…

    C 2023年5月23日
    00
  • JSON的String字符串与Java的List列表对象的相互转换

    Sure! 首先说明一下,JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,因其简单易读易写,通常用于在前后端之间传递数据。在Java中,我们可以通过Jackson或Gson等库来实现JSON的序列化和反序列化。下面我将详细说明如何将JSON的String字符串和Java的List列表对象相互转换。 JSON字符串转…

    C 2023年5月23日
    00
  • 浅谈Python 中的复数问题

    浅谈Python 中的复数问题 什么是复数 在数学中,负数的出现,让数轴不再只有正方向,还有负方向。同样的,对于一些无法用实数描述的概念或者物理量(例如电阻、电容、力等),我们也需要在数轴的虚数方向上寻找答案。 虚数定义为 $\sqrt{-1}$ ,通常用字母 i 来表示。复数是实数与虚数的和,形如 $a+bi$ 的形式。 Python 中的复数 在 Pyt…

    C 2023年5月23日
    00
  • C语言实现面向对象的方法详解

    C语言实现面向对象的方法详解 在C语言中实现面向对象的方法,主要有以下几种: 1. 结构体替代类 使用结构体来封装变量和函数,即可实现类似对象的功能。其中,结构体包含变量和函数指针,变量用于存储成员变量的值,函数指针用于实现成员函数的功能。而每个对象的变量是独立的,因此可以使用这种方法实现类似对象的功能。 下面是一个例子,以封装一个“人”的结构体为例: ty…

    C 2023年5月22日
    00
  • C语言中打印特殊图案的实现代码

    下面是详细讲解“C语言中打印特殊图案的实现代码”的完整攻略。 1. 基本概念 在C语言中,我们可以通过使用转义字符来实现打印特殊字符或图案的功能。转义字符是以反斜杠(\)开头的一种特殊字符,它们表示某些无法输入的字符,如换行符、制表符、回车符等。 2. 实现代码 2.1 示例一:打印三角形 以下代码可以打印一个由星号组成的三角形,可以通过连续打印多行来实现。…

    C 2023年5月24日
    00
  • Linux线程管理必备:解析互斥量与条件变量的详解

    让我来详细讲解一下 “Linux线程管理必备:解析互斥量与条件变量的详解”的完整攻略。 简介 在Linux下进行线程管理使用互斥量和条件变量是非常常见的。互斥量提供了对访问共享资源的互斥访问,条件变量允许一个线程等待特定条件的出现。本攻略将简要介绍互斥量和条件变量的概念、实现方式及相关应用,以及在Linux下使用互斥量和条件变量的示例代码。 互斥量介绍 互斥…

    C 2023年5月22日
    00
  • Node.js API详解之 net模块实例分析

    首先,我们需要了解什么是Node.js的API。API全称是Application Programming Interface,它是软件系统不同组件之间的交互接口。Node.js提供了一个强大的API库,包括了许多内置的模块,来支持应用程序的开发与部署。其中net是Node.js提供的一个核心模块,它提供了一个异步的网络接口,用于创建TCP和UNIX客户端/…

    C 2023年5月23日
    00
合作推广
合作推广
分享本页
返回顶部