关于C++删数问题
发布网友
发布时间:2022-06-09 13:07
我来回答
共1个回答
热心网友
时间:2023-10-02 14:19
不是一个意思,string的erase有三种:
一种接受一个参数,但是这个参数必须是迭代器,也就是a.erase(a.begin()+i)的写法,作用是删除第i+1个字符;
第二种是接受两个参数,但是这两个参数必须是迭代器,意思是删除两个迭代器中间的部分字符(含头不含尾);
第三种情况还是接受两个参数,但是这两个参数是size_type类型,你可以理解成整形,也就是你说的a.erase(0,i)这种情况了,意思是从位置0开始,往后连续删除i个字符。追问也就是说我写a.erase(i+1)与a.erase(a.begin()+i)是一样的还是不一样的?
还有就是这里的a.erase(1)是指删除a[0]还是a[1]?
追答你试一下不就知道了嘛。看怎么把整形转换成迭代器的。