当前位置: 代码迷 >> 综合 >> c.erase(); ( c 为容器 )
  详细解决方案

c.erase(); ( c 为容器 )

热度:48   发布时间:2023-12-06 04:52:21.0

//01 string& erase( size_t pos=0,size_t n=s.size()-pos );01 return string& 类型 // 即 return 执行对应删除操作后 s 的引用 02 从下标 pos 开始,删除 n 个元素03 参数 n 缺省时,删除 从下标 pos 开始的所有元素04 两个参数都缺省时( 或 pos==0 ) 清空元素02 iterator erase( iterator it );01 return 指向 被删元素 下一个位置的 迭代器02 删除迭代器 it 指向的元素03 iterator erase( iterator first,iterstor last );01 return 指向 被删元素 下一个位置的 迭代器02 删除迭代器 [ first,last ) 区间内的所有元素

// eg
#include<bits/stdc++.h>
using namespace std;int main()
{string s="";string s1="abcdefg";string s2="abcdefg";string s3="abcdefg";string s4="abcdefg";string s5="abcdefg";vector<int> v1={ 1,2,3,4 };      // {} not () vector<int> v2={ 5,6,7,8 };s1.erase(0);    cout<<"s1 "<<s1<<endl;     printf("%d\n",s1==s );      // 输出: 1s2.erase();     cout<<"s2 "<<s2<<endl;     printf("%d\n",s2==s );s3.erase( s3.begin()+2 );               cout<<"s3 "<<s3<<endl;s4.erase( s4.begin()+2,s4.end()-2 );    cout<<"s4 "<<s4<<endl;s5.erase( 2,2 ); cout<<"s5 "<<s5<<endl;v1.erase( v1.begin()+1 ); for( auto i:v1 ) printf("%d ",i); printf("\n");// v2.erase( 2,2 );          for( auto i:v2 ) printf("%d ",i); printf("\n"); // error        return 0;
}
// s1
// 1
// s2
// 1
// s3 abdefg
// s4 abfg
// s5 abefg
// 1 3 4