首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

使用索引擦除stl :: vector中的元素

使用索引擦除stl :: vector中的元素,可以使用erase函数。erase函数可以接受一个迭代器或者一个迭代器范围作为参数,并返回一个指向删除元素之后的第一个元素的迭代器。

以下是一个示例代码:

代码语言:c++
复制
#include<iostream>
#include<vector>

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

    // 删除第二个元素
    std::vector<int>::iterator it = v.begin() + 1;
    v.erase(it);

    // 输出删除后的vector
    for (int i = 0; i < v.size(); i++) {
        std::cout << v[i] << " ";
    }
    std::cout<< std::endl;

    return 0;
}

输出结果为:

代码语言:txt
复制
1 3 4 5

在上面的示例代码中,我们使用了erase函数来删除vector中的第二个元素。注意,erase函数返回的是删除元素之后的第一个元素的迭代器,因此我们需要将返回的迭代器赋值给vector的迭代器。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

STLvector使用

1.2、vector数据结构 在SGI版本STLvector数据结构非常简单,就三个迭代器,以start和finish分别指向空间头和已使用尾,以end_of_storage指向整块空间尾端...如下图所示:  接下来将进行讲解vector常用接口使用 2、vector使用 2.1、构造相关 我们在使用vector时,首先要记得包头文件,在定义一个vector时,有以下几种定义方式...(vs使用PJ版本STL,linuxg++使用SGI版本STL,进行对比) void TestVectorExpand() { size_t sz; vector v; sz =...当然,vector还提供了一const迭代器,const迭代器特点就是不能对其指向空间元素进行修改。...不过需要注意是,find并不是vector成员函数,使用find需要包含头文件。在上文多个例子已经多次使用,这里就不再演示,需要注意迭代器失效相关问题。

15430

C++ STL学习之【vector使用

begin() 和 end() 适用于 正向迭代器 begin() 为对象首个有效元素地址 end() 为对象中最后一个有效元素下一个地址 ---- rbegin() 和 rend() 适用于...,此时没有及时更新,再次使用视为非法行为 因此我们认为 vector 在插入或删除后,迭代器失效,不能再使用,尤其是 PJ 版本,对迭代器失效检查十分严格 至于其具体原因和方法,留在下篇文章揭晓 5.3...等于 _start,就完成了清理,不需要进行缩容,这样做是低效 关于 vector 更多、更详细内容,欢迎移步 《C++ STL学习之【vector模拟实现】》 ---- 6、相关试题 光知道怎么使用是不够...,还需要将知识付诸于实践,切记纸上谈兵 下面是一些比较适合练习使用 vector 试题,可以做做 vector 值得做题目 ---- 总结 以上就是本次关于 STLvector 全部讲解了,...vector 相对来说函数比较少,也比较好理解,不过在实际使用,会存在不少问题,需要对 vector 不断使用以提高认知,如果对 vector 剩余函数感兴趣,可以阅读官方文档 vector 如果你觉得本文写还不错的话

26610

盘点Vector类、Vector类向量添加元素常用方法、Vector类向量删除元素对象常用方法

一、Vector类 1.在c和c++动态数组一般是用指针来实现Vector类是实现List接口,java提供了很多类库来方便开发人员来使用Vector类是其中之一。...:"+v1); System.out.println("v2集合元素有:"+v2); //在v1集合索引值为2插入v2集合 v1.insertElementAt...三、Vector类向量删除元素对象常用方法 1.void removeAllElement( )删除集合所有元素,并将把大小设置为0。..." + v); //删除索引值为1元素 v.removeElementAt(1); System.out.println("v集合中所有的元素" +...四、总结 本文主要介绍了Vector类、Vector类向量添加元素常用方法、Vector类向量删除元素对象常用方法。 Vector类是实现动态数组功能,介绍它4种构造方法。

1.6K40

【C++】STL 容器 - deque 双端数组容器 ( deque 容器与 vector 容器区别 | 容器头部插入 删除元素 | 查询元素索引位置 | algorithm#find 函数 )

1、使用 algorithm#find 函数查询 deque 容器元素对应迭代器 2、使用 algorithm#distance 函数计算两个迭代器距离 3、完整代码示例 一、 deque 双端数组容器简介...尾部 插入 和 移除元素 ; deque 可以在 头部 和 尾部 插入 和 移除元素 ; deque 容器 与 vector 容器 操作 , 绝大部分都是相同 , 本篇博客着重讲解 deque...deque 类型 STL 容器 void printV(deque& deq) { cout << "deque 容器元素 : "; for (int i =...三、 查询 deque 容器中指定元素索引位置 1、使用 algorithm#find 函数查询 deque 容器元素对应迭代器 在 头文件 定义了一个 find()...STL 容器 void printD(deque& deq) { cout << "deque 容器元素 : "; for (int i = 0; i < deq.size

20610

【Python】元组 tuple ② ( 元组常用操作 | 使用下标索引取出元组元素 | 查找某个元素对应下标索引 | 统计某个元素个数 | 统计所有元素个数 )

一、元组常用操作 1、使用下标索引取出元组元素 - [下标索引] 使用下标索引取出 元组 tuple 元素 方式 , 与 列表 List 相同 , 也是将 下标索引 写到括号 访问指定位置元素..., 语法如下 : 元素变量 = 元组变量[下标索引] 如果是嵌套元组 , 则使用两个 括号 进行访问 ; 元素变量 = 元组变量[下标索引1][下标索引2] 代码示例 : """ 元组 tuple...常用操作 代码示例 """ # 定义元组字面量 t0 = ("Tom", "Jerry", 18, False, 3.1415926) # 打印元组索引值为 1 元素 print(t0[1])...# 输出: Jerry # 定义元组变量 t1 = (("Tom", 18), ("Jerry", 16)) # 打印 嵌套元组 元素 print(t1[1][1]) # 输出: 16 执行结果...: Jerry 16 2、查找某个元素对应下标索引 - index 函数 调用 tuple#index 函数 , 可以查找 元组 中指定元素 对应下标索引 ; 函数原型如下 : def index

86420

【C++】STL容器——vector使用指南(含代码演示)(11)

本章主要内容面向接触过C++老铁 主要内容含: 一、vector类——基本介绍 vector是表示 可变大小数组 序列容器。 就像数组一样,vector也采用连续存储空间来存储元素。...本质讲,vector使用动态分配数组来存储它元素。当新元素插入时候,这个数组需要被重新分配大小为了增加存储空间。其做法是:分配一个新数组,然后将全部元素移到这个数组。...就时间而言,这是一个相对代价高任务,因为每当一个新元素加入到容器时候,vector并不会每次都重新分配大小。...vector分配空间策略:vector会分配一些额外空间以适应可能增长,因为存储空间比实际需要存储空间更大。不同库采用不同策略权衡空间使用和重新分配。...这个问题经常会考察,不要固化认为,vector增容都是2倍,具体增长多少是根据具体需求定义 。vs是PJ版本STL,g++是SGI版本STL

54610

Python如何获取列表重复元素索引

一、前言 昨天分享了一个文章,Python如何获取列表重复元素索引?,后来【瑜亮老师】看到文章之后,又提供了一个健壮性更强代码出来,这里拿出来给大家分享下,一起学习交流。...= 1] 这个方法确实很不错,比文中那个方法要全面很多,文中那个解法,只是针对问题,给了一个可行方案,确实换个场景的话,健壮性确实没有那么好。 二、总结 大家好,我是皮皮。...这篇文章主要分享了Python如何获取列表重复元素索引问题,文中针对该问题给出了具体解析和代码演示,帮助粉丝顺利解决了问题。...最后感谢粉丝【KKXL螳螂】提问,感谢【瑜亮老师】给出具体解析和代码演示。

13.3K10

查找某个元素在数组对应索引

1 问题 已知一个数组内元素为 { 19, 28, 37, 46, 50 } 。用户输入一个数据,查找该数据在数组索引,并在控制台输出找到索引值,如果没有查找到,则输出 -1。...2 方法 首先定义一个数组,在键盘录入要查找数据,用一个变量接收。再定义一个变量,初始值为-1。遍历数组获取数组每一个元素。...然后将键盘输入数据和数组每一个元素进行比较,如果值相同就把该值对应索引赋值给索引变量,并结束循环。最后输8出索引变量。...; }else{ System.out.println("您输入数字" + a + "在数组索引是:" + dataIndex); } }...(a == arr[i]){ return i; } } return -1; } } 3 结语 针对查找某个元素再数组对应索引这个问题

3.1K10

【C++】STL容器——探究List与Vector使用sort函数排序区别(14)

本章主要内容面向接触过C++老铁 主要内容含: 1.Sort函数接口 注意: Compare comp 参数可以决定是【 正序 】还是【 逆序 】 2.Sort函数接口使用(代码演示)...和list分别的Sort函数区别 【1】vector和list分别的Sort函数解析 区别: 使用上: listsort使用更方便lt2.sort();;vector分前后,要找迭代器sort(...v.begin(), v.end()); 效率上:在处理少量数据时候,vectorlistsort效率差不多;处理大量数据,vector要优于list; 【2】vector和list分别的Sort函数使用...(代码演示) 说明 下面函数是设置N为数据量,然后分先后记录了vector和list排序一段相同数据所需时间 最后得出【1】结论:在处理少量数据时候,vectorlistsort效率差不多...排序,排完以后再拷贝回来 int begin1 = clock();//clock()是C/C++计时函数,而与其相关数据类型是clock_t // 先拷贝到vector for (auto

17010

【C++】STL 容器 - vector 动态数组容器 ⑥ ( 使用迭代器遍历 vector 容器步骤 | 获取指容器向首元素迭代器 begin 函数 | 获取末尾迭代器 | * 迭代器解引用 )

一、 使用迭代器遍历 vector 容器步骤 1、使用迭代器遍历 vector 容器步骤 使用 迭代器 遍历 vector 容器 , 首先 , 获取 起始范围 迭代器 , std::vector 类型容器 , 其迭代器类型是 vector::iterator , 调用 vector begin() 函数 , 可获取 指向容器 第一个元素迭代器 ; vector...可以用来修改容器元素 ; 第二个重载版本函数 是 常量迭代器 , 不能用来修改容器元素 ; 返回迭代器 可以使用 * 操作符进行解引用操作 , 获取迭代器指向元素值 ; 代码示例 : #include...修改 vector 容器后 , end() 函数返回迭代器在容器被修改时不会自动更新 ; 如果 vector 容器元素发生了改变 , 需要重新调用 end() 函数来获取新末尾迭代器 ; 代码示例...; 如果 通过得到引用 修改了该元素值 , 那么 vector 容器元素也会一并进行修改 ; 特别注意 : operator* 只适用于 非常量迭代器 ; 代码示例 : // 创建空

1.7K10

C++STLset使用策略(一)

set是STL中一种标准关联容器。它底层使用平衡搜索树——红黑树实现,插入删除操作时仅仅需要指针操作节点即可完成,不涉及到内存移动和拷贝,所以效率比较高。        ...),对称差(set_symmetric_difference) 等一些集合上操作,如果需要集合元素允许重复那么可以使用multiset。.../*2.删除*/ //s.erase(); 删除一个元素 //s.clear(); 删除set容器所有的元素 #include  #include  using namespace.../*4.查找*/ //s.find() 查找一个元素,如果容器不存在该元素,返回值等于s.end() #include  #include  using namespace...,分别表示 第一个大于或等于给定关键值元素 和 第一个大于给定关键值元素,这个返回值是一个pair类型,如果这一对定位器哪个返回失败,就会等于s.end() #include

82430

【C++】STL容器——探究不同 种类&在STL使用方式(15)

本章主要内容面向接触过C++老铁 主要内容含: 引言: 在C++系列P15,我们发现sort函数迭代器参数出现了[RandomAccessIterator]这是什么呢?...让我们继续来探讨吧~ 一.查看STL使用文档时发现"迭代器分为许多种类" 如下文图所示: 二.容器与不同迭代器关系 不难发现,其实迭代器分为许多种类,不同种类迭代器由容器底层结构决定,查阅资料后发现大概能分为以下三类...: 迭代器种类 说明 单向(input) forward_list/unordered_xxx 双向(bidirectional) list/map/set 随机(random) vector/string.../deque 下面是我们查阅文档所得资料: 三.容器在使用含迭代器参数相关函数时注意点 根据迭代器种类来说:单向是双向一种特殊情况,双向是随机一种特殊情况 所以总体迭代器兼容程度是【随机>

12410
领券