Other.手写unique
unique
函数的功能:unique()
函数可以在序列中原地移除重复的元素,相邻重复元素只保留第一个。这就要求被处理的序列必须是正向迭代器所指定的。在移除重复元素后,它会返回一个正向迭代器作为新序列的结束迭代器。可以提供一个函数对象作为可选的第三个参数,这个参数会定义一个用来代替 ==
比较元素的方法。
思路:
- 利用
store_index
型双指针可以实现 - 两根指针,一根是
store_index
,另外一根是遍历指针i
,逐个往后扫描,如果符合条件,就把当前i
指向的元素放入store_index
指向的位置当中,并且将store_index
往后移动一位。代码:
```cpp vector:: iterator unique(vector &a){ int store_index = 0; for(int i = 0; i < a.size(); i ++)
return a.begin() + store_index; }if(i == 0 || a[i] != a[i - 1])
a[store_index ++ ] = a[i];
```