STL:unique()函数

来源:互联网 发布:网络电影发展史 编辑:程序博客网 时间:2024/06/06 03:41

unique()

unique()是剔除重复他是剔除相邻之间字符重复的,倘若其中中的字符前后之间是没有重复的,unique函数是起不到作用的,所以使用以前都会sort处理。
unique()函数的返回值是源字符串中去除相邻之间相同字符后剩下的字符串中的最后一个字符的下一个位置,举例string str=“aabbcc”unique()操作之后是“abcbcc”,那么unique()返回的是指向不重元素的下一个位置,即指向“abc*cc”指向*号位置的地址;

unique函数本质上并不是将字符或者数组中的重复删除,而是将重复的元素留下一个,将欺负重复的放在末尾,本质上内存大小是不会变的
unique()返回的是不重元素的下一个位置

具体使用方法:

#include <iostream>#include <cstdio>#include <algorithm>#include <cstring>using namespace std;int main() {    string str="aabbcc";    cout<<str<<endl;    int size=unique(str.begin(),str.end())-str.begin();    for(int i=0;i<size;i++) {        cout<<str[i];    }    cout<<endl;}
#include <iostream>#include <cstdio>#include <algorithm>#include <cstring>using namespace std;int main() {    string str="aabbcc";    cout<<str<<endl;//  int size=unique(str.begin(),str.end())-str.begin();//  for(int i=0;i<size;i++) {//      cout<<str[i];//  }//  cout<<endl;    str.erase(unique(str.begin(),str.end()),str.end());    cout<<str<<endl;}
原创粉丝点击