中易网

关于c++ stl 中unique函数的问题

答案:2  悬赏:60  
解决时间 2021-12-28 08:59
unique函数中的参数应该怎么填,比如说 int x[5]={1,2,3,4,5};
查了很多地方都说第一个填开始的地址,第二个填结束的地址那么应该这么填吧 unique(x,x+4);可事实上大家都这么写unique(x,x+5);不是越界?

这个似乎和sort的参数一样,然而返回的也似乎也不是整合了重复元素之后的数组的最后一个的地址,而是这个地址+1
最佳答案
unique函数原型:
template
ForwardIterator unique (ForwardIterator first, ForwardIterator last);

对first和last的解释是:
Removes all but the first element from every consecutive group of equivalent elements in the range [first,last).
可见是在半闭合区间[first,last)内的元素。即first和last之间的元素,包含first所指的元素,但不包含last所指。
所以应该是(x, x+5)。
全部回答
你没说清楚,其实和你这个问题相关的有两个find函数,一个是stl的算法函数find,另一个是set类的成员函数find 非成员函数find是线性时间复杂度的,他挨个遍历你传给他的区间内的元素,用等于号运算符判断是不是相等。 而set的成员函数find是logn时间复杂度的,他利用set内部的数据结构(一般来说是红黑树)来寻找元素,依据是set内部的比较器,如果你没有显式给他比较器的话,默认就是小于号运算符 所以:这两个函数会得到不一样的结果,如果你定义的等于号和小于号是不一致的话。如果你要通过等于号查找的话,用非成员函数的find
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
乱狱的意思是什么啊?请解释下!
八个月宝宝大便次数多量少
查問的意思是什么?查問的释义是什么啊?
夫妻吵架老公绝情又冷漠这意味着什么?
西安市雁塔区东仪路与明德一路丁字路口的阳光
二七大罢工的意思是什么?二七大罢工的释义是
5d3 只有一个50 1.8 够吗
放絶的意思是什么啊?请解释下!
到女朋友家里吃饭,不知道说什么怎么办?
登陆工商银行个人网上银行的时候需要输入的卡
生命从哪里来
上古卷轴5对于同一问题的不同回答有什么区别
QQ帐号被网友恶意举报发布虚假消息,严重影响
貍裘的意思是什么?貍裘的释义是什么啊?
中国信合(人民路)地址在什么地方,想过去办事
推荐资讯
有谁了解复合发泡水泥板外墙外保温施工工艺?
请问谁有韩顺平java 细说jsp mvc版的购物车项
吩呶的意思是什么?吩呶的释义是什么啊?
榆树市老年人体育协会地址在哪,我要去那里办
毛家沟村委会地址在什么地方,想过去办事
has,short,tail,it,a(.)连词成句怎么写
歇足的意思是什么?歇足的释义是什么啊?
什么是质押贷款,什么是抵押贷款
平板电脑中处理器intel atom z3580 z3735 z37
体气的意思是什么?体气的释义是什么啊?
气保焊短路弧过渡时电源极性直流正接还是反接
大穷的意思是什么?大穷的释义是什么啊?
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?