简单实现
#include <iostream>
using namespace std;
int myUnique(int arr[], int n)
{
int pos = 0;
for (int index = 1; index < n; ++index)
{
if ( arr[pos] != arr[index] )
{
arr[++pos] = arr[index];
}
}
return pos + 1;
}
//关联partition
int myRemove(int arr[], int n, int target)
{
int pos = 0;
for (int index = 0; index < n; ++index )
{
if (arr[index] != target)
{
arr[pos++] = arr[index];
}
}
return pos;
}
int main()
{
int arr1[] = {1,2,2,3,3,4};
int upos = myUnique(arr1, 6); //upos = 4 {1,2,3,4,3,4}
int arr2[] = { 1,2,3,99,5,99,7,8,9,99 };
int rpos = myRemove(arr2, 10, 99); //pos = 7 {1,2,3,5,7,8,9,8,9,99}
//remove和unique都需要使用erase删除多余空间
return 0;
}