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日

相关文章

  • office2019最新激活秘钥分享 附office2019免费版+激活工具

    Office2019激活秘钥分享及激活工具使用攻略 本文将为大家提供Office2019最新激活秘钥、Office2019免费版及激活工具的下载和使用方法,方便用户体验并提高工作效率。 Office2019最新激活秘钥分享 Office2019是微软推出的办公软件套装,被广泛用于商业、教育以及家庭等不同领域。以下是最新的Office2019激活秘钥: 键值1…

    C 2023年5月22日
    00
  • C语言中数据如何存储进内存揭秘

    C语言中数据如何存储进内存揭秘 C语言程序在运行时,需要使用计算机的内存来存储数据。C语言中的数据类型包括整型、浮点型、字符型等等,这些数据类型都有不同的内存分配方式,下面我们就来一一了解。 整型数据内存分配 对于整型数据,C语言会根据数据类型的位数分配不同字节的内存空间。例如,对于int类型的数据,一般分配4个字节的内存空间。这个内存空间会从计算机的内存地…

    C 2023年5月23日
    00
  • java生成json数据示例

    生成JSON数据是Java编程过程中非常常见的需求,下面是Java生成JSON数据的完整攻略。 示例一:将Java对象转换为JSON数据 Java中的对象可以轻松转换为JSON数据,这可以通过Java提供的Jackson框架来实现。以下是一个简单的示例: ObjectMapper mapper = new ObjectMapper(); SomeObject…

    C 2023年5月23日
    00
  • .net core如何在网络高并发下提高JSON的处理效率详解

    首先,针对提高JSON的处理效率,我们可以从以下几方面入手: 选取高性能的JSON库 .NET Core自带了一个 Newtonsoft.Json 库,能够满足一般的需求,在处理一些复杂JSON数据时,可能会出现性能瓶颈。这时可以考虑使用其他的高性能JSON库,比如 Utf8Json、System.Text.Json等等。在具体应用时,可以对比测试不同库的性…

    C 2023年5月23日
    00
  • C语言循环链表的原理与使用操作

    C语言循环链表是一种基于链表数据结构的可循环访问的存储方式。与线性表相比,链表能够优化数据的插入和删除操作的效率,并且支持动态的内存分配。而循环链表则定义了表头尾相接,最后一个节点指向第一个节点的链表。下面将详细讲解循环链表的原理、使用操作及其实现过程,以及两个示例进行说明。 原理 循环链表是由多个节点组成的链式结构,每个节点包含自身的数据和指向下一个节点的…

    C 2023年5月24日
    00
  • windows无法访问指定设备路径或文件详细解决方案

    Windows无法访问指定设备路径或文件详细解决方案 在使用Windows电脑时,我们有时可能会遇到“Windows无法访问指定设备路径或文件”这样的错误提示,这通常是由于一些权限或路径错误引起的。本文将介绍一些可行的解决方案。 方案一:检查文件或路径权限 这种错误通常是由于您缺少对文件或路径的访问权限导致的,因此您需要检查并更改相关权限设置,如下所示: 右…

    C 2023年5月24日
    00
  • 详解python 3.6 安装json 模块(simplejson)

    安装json模块(simplejson)可以帮助我们在Python 3.6中更方便地处理JSON数据格式。下面是安装和使用simplejson的完整攻略。 安装simplejson模块 要安装simplejson模块,可以使用pip命令在控制台进行安装。输入以下命令: pip install simplejson 如果你使用的是Python 3.6及以上版本…

    C 2023年5月23日
    00
  • C语言修炼之路灵根孕育源流出 初识C言大道生上篇

    C语言修炼之路灵根孕育源流出 初识C言大道生上篇 灵根孕育源流出 本篇文章首先介绍了C语言的起源和发展,以及C语言与其他计算机语言之间的关系和区别,为后续学习打下了基础。 初识C言大道生 本篇文章主要介绍了C语言的一些基本概念和语法,包括变量、数据类型、运算符、控制语句等重要内容,让读者初步了解C语言编程的基本思想和方法。 针对本篇文章,下面给出两个示例: …

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