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 ++)
    1. if(i == 0 || a[i] != a[i - 1])
    2. a[store_index ++ ] = a[i];
    return a.begin() + store_index; }

```