开发者社区> 鱼儿小猫> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

遍历中stl erase 的使用

简介: vector(deque)是一个顺序容器,erase后,后面的元素自动前移,后面所有迭代器失效(地址前移) 对顺序容器的erase正确操作方法是使用erase的返回值,erase返回被删元素的下一个元素地址。  // 假设vec中只存放一个值 iterator container::erase(iterator pos) for(; iter != vec.end(); ) //
+关注继续查看

vector(deque)是一个顺序容器,erase后,后面的元素自动前移,后面所有迭代器失效(地址前移)

对顺序容器的erase正确操作方法是使用erase的返回值,erase返回被删元素的下一个元素地址。

 // 假设vec中只存放一个值

iterator container::erase(iterator pos)

for(; iter != vec.end(); ) // iter: 0x0a3642d8    end(): 0x0a3642dc  
{
   if(//条件为真)
    {
       iter = vec.erase(iter); // iter: 0x0a3642d8  end():0x0a3642d8
    }
    else
    {
       ++iter;
    }
}


对关系容器的erase可以使用使用后置++的方法进行。因为此类采用红黑树实现,插入删除一个节点不会对其它节点产生影响。

传给erase的是iter的一个副本,void erase(iterator __pos),iter++会指向下一个元素

void container::erase(iterator pos)

for(; iter != _map.end(); )
{   if(//条件为真)    
     {       
        _map.erase(iter++);    
     }    
     else    
     {      
        ++iter;    
     }
}


对于list来说,它使用了不连续分配的内存,并且它的erase方法也会返回下一个有效的迭代器,因此,以上两种方法都可以使用。

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
**SQL中Group By的使用
1、概述 2、原始表 3、简单Group By 4、Group By 和 Order By 5、Group By中Select指定的字段限制 6、Group By All 7、Group By与聚合函数 8、Having与Where的区别 9、Compute 和 Compute By 1、概述 “Group By”从字面意义上理解就是根据“By”指定的规则对数据进行分组,所谓的分组就是将一个“数据集”划分成若干个“小区域”,然后针对若干个“小区域”进行数据处理。
797 0
题目1003:A+B ---c_str(),atoi()函数的使用;remove , erase函数的使用
1 #include 2 #include 3 int sw(char *a){ 4 int i=0,c=0; 5 while(a[i]){ 6 if(a[i]>='0'&&a[i]>inA>>inB) 10...
842 0
SAP UI5 Model destroy
Created by Wang, Jerry, last modified on Jul 09, 2015
46 0
Jetpack Compose中ViewModel、Flow、Hilt、Coil的使用
Jetpack Compose中ViewModel、Flow、Hilt、Coil的使用
58 0
如何通过Github Action使用Serverless Devs做CI/CD
当我们在体验Serverless之后,欲将项目真真实实的部署到Serverless架构时,CI/CD是我们很多人绕不开的话题,那么基于Serverless Devs这款工具,如何快速的和Github Action进行有机结合,实现CI/CD的能力呢?
51 0
xterm DECRQSS Remote Command Execution Vulnerability
An attacker may exploit this issue using readily available commands.
552 0
+关注
鱼儿小猫
无证开发程序员。
111
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载