منحصر به فرد - تابعی که تمام دنباله های عناصر متوالی یکسان را در یک زمان خطی فشرده می کند.
به عنوان یک آرگومان، از مرزهای آرایه عبور می کند که در آن باید فشرده سازی اعمال شود.
یک تکرار کننده به انتهای جدید (غیر شامل) آرایه برگردانده می شود. شما باید مراقب عناصر بعد از پایان جدید اما قبل از قدیمی باشید، زیرا آنها مقدار نامشخصی خواهند داشت.
میتوانید در اسناد بیشتر بخوانید.
اگر از این تابع در یک بردار استفاده می کنید، تغییر اندازه با استفاده از نتیجه برگشتی راحت است (در ادامه در مورد آن بیشتر توضیح می دهیم).
مثالها:
بردار a = { 3, 3, 3, 2, 3, 3, 1, 1, 4, 5, 5 };
منحصر به فرد(a.begin()، a.end());
// a = [3، 2، 3، 1، 4، 5، ?، ?، ?، ?، ?]
// استفاده از تابع منحصر به فرد برای انجام راحت است
// آرایه کمکی برای فشرده سازی مختصات
a = { 235، 10، 41، 10، 41، 41، 235، 500، 500 };
sort(a.begin()، a.end());
// a = [10، 10، 41، 41، 41، 235، 235، 500، 500]
a.resize(unique(a.begin()، a.end()) - a.begin());
// a = [10، 41، 235، 500]