c++ 里面的erase()和insert()的问题。

为什么结合容器里的set定义的对象可以在调用erase(x)和insert(x)这两个函数时,括号里的参数可以为具体的值,但是序列容器的vector,deque,list... 为什么结合容器里的set定义的对象可以在调用erase(x)和insert(x)这两个函数时,括号里的参数可以为具体的值,但是序列容器的vector,deque,list定义的对象调用erase(i)和insert(i)括号里的参数只能是迭代器的变量,如果是具体的值就会报错,这是为为什么啊? 展开
 我来答
春哥没仔生
2014-10-10
知道答主
回答量:26
采纳率:0%
帮助的人:15.3万
展开全部
set 容器可以根据想被插入的值来求得它应该放的位置, 因为它是个二叉树。但是list vector 里面的元素是无序的, 所以容器不知道被插数值的插入位置,故必须用迭代器确定插入位置。

reference: http://www.cplusplus.com/reference/stl/
追问
什么叫二叉树?
追答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式