unique函数
实质
u n i q u e unique unique函数并不是删除相同的元素,而是不断的 c o p y copy copy后面不同的元素到前面连续相同元素的位置上
应用
#include<bits/stdc++.h>
using namespace std;
int main()
{
vector<int>a(8);
for (int i = 0;i <= 7;i++)cin >> a[i];//读取2 4 9 7 7 2 2 1
sort(a.begin(), a.end());
for (int i = 0;i < a.size();i++)cout << a[i] << ' ';
cout << '\n';
vector<int>::iterator erbe = unique(a.begin(), a.end());
for (int i = 0;i < a.size();i++)cout << a[i] << ' ';
cout << '\n';
}
erase函数
删除函数,与 c l e a r ( ) clear() clear()格式化版删除不同, e r a s e erase erase能从特定位置删除特定数量的元素
基本用法
#include<bits/stdc++.h>
using namespace std;
int main()
{
//基本用法
string str = "Hello World!";
cout << str;
cout << '\n';
str.erase(5, 3);
cout << str;
}
与unique配合
#include<bits/stdc++.h>
using namespace std;
int main()
{
//与unique配合使用
vector<int>a(8);
for (int i = 0;i <= 7;i++)cin >> a[i];//读取2 4 9 7 7 2 2 1
sort(a.begin(), a.end());
for (int i = 0;i < a.size();i++)cout << a[i] << ' ';
cout << '\n';
vector<int>::iterator erbe = unique(a.begin(), a.end());
for (int i = 0;i < a.size();i++)cout << a[i] << ' ';
cout << '\n';
a.erase(erbe, a.end());
for (int i = 0;i < a.size();i++)cout << a[i] << ' ';
}