stl 通用算法中的remove()和list容器的remove()函数是一样的么?

我觉得list.remove()应该是真的删除了元素的吧,而且改变了容器的大小,类似于其他容器的erase(),而通用算法中的remove()只是将要删除元素给覆盖了而已... 我觉得list.remove()应该是真的删除了元素的吧,而且改变了容器的大小,类似于其他容器的erase(),而通用算法中的remove()只是将要删除元素给覆盖了而已,并没有改变容器大小,不知这种猜测是否正确呢? 展开
 我来答
carea
2012-12-08 · TA获得超过459个赞
知道小有建树答主
回答量:395
采纳率:65%
帮助的人:111万
展开全部
你的猜测完全正确,下面是示例验证程序,和输出结果
list<int> l1,l2;
print("list 1:");
push_order(l1);
print(l1.begin(),l1.end());
remove_if(l1.begin(),l1.end (),is_odd);
print(l1.begin(),l1.end());

print("list 2:");
push_order(l2);
print(l2.begin(),l2.end());
l2.remove_if(is_odd);
print(l2.begin(),l2.end());
输出:
list 1:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
2 4 6 8 10 12 14 16 18 20 11 12 13 14 15 16 17 18 19 20
list 2:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
2 4 6 8 10 12 14 16 18 20
请按任意键继续. . .
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式