c++ 里面的erase()和insert()的问题。
为什么结合容器里的set定义的对象可以在调用erase(x)和insert(x)这两个函数时,括号里的参数可以为具体的值,但是序列容器的vector,deque,list...
为什么结合容器里的set定义的对象可以在调用erase(x)和insert(x)这两个函数时,括号里的参数可以为具体的值,但是序列容器的vector,deque,list定义的对象调用erase(i)和insert(i)括号里的参数只能是迭代器的变量,如果是具体的值就会报错,这是为为什么啊?
展开
展开全部
set 容器可以根据想被插入的值来求得它应该放的位置, 因为它是个二叉树。但是list vector 里面的元素是无序的, 所以容器不知道被插数值的插入位置,故必须用迭代器确定插入位置。
reference: http://www.cplusplus.com/reference/stl/
reference: http://www.cplusplus.com/reference/stl/
追问
什么叫二叉树?
追答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询