remove(3); // 现在mylist为{1, 2, 4, 5} 复制代码 erase()方法: erase()方法是list容器的成员函数,用于删除容器中指定位置的一个或多个元素。它接受一个迭代器参数,指定要删除的元素的位置,或者一个范围的迭代器参数,指定要删除的元素的范围。erase()方法会返回一个指向删除后的下一个元素的迭代器,并且...
但是实际上,list使用erase删除一个迭代器后,会保留原始索引,仍能输出删除迭代器所指的值,使用erase后返回的是下一个迭代器。 测试程序: list<int>List; List.push_back(1); // List.push_back(1); List.push_back(3); List.push_back(1); List.push_back(1); List.push_back(5); List.push_back(...
erase是以迭代器为基本单位,清除元素,改变size的值;remove是以value相等为标准,也改变size的值。 2.在清空list中,我们该用什么操作 1//调用析构函数,清掉了list的内存2for(list<CUnit *>::iterator it = listStr.begin(); it !=listStr.end(); )3{4delete*it;5listStr.erase(it++);6//listStr.rem...
这个操作并不是真正地删除元素,它会移除指定的元素,然后后面的元素依次前移,最后用别的元素来补充。 erase(释放): 这个操作会指定释放区间的头和尾迭代器(iterator)。 如果要一次性删除指定元素: coll.erase(remove(coll.begin(), coll.end(), [removed element]), coll.end()); 代码如下: list<int>coll1;...
1.之前在做相关的操作的时候,涉及到清除list相关的元素,因此会用到erase和remove,那么二者有什么区别呢? 从官方文档中,我们可以获取以下信息 erase : 说明:Removes from thelistcontainer either a single element (position) or a range of elements ([first,last)).This effectively reduces the containersizeby ...