//
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 ); // 输出: 1
s2.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