重排算法
2023年12月24日 2023年12月25日
会改变序列中元素的顺序
对序列中的元素进行排序
sort
使用元素类型的小于运算符 <
对元素进行排序
给出序列的所有元素, 使用迭代器范围: [b, e)
1sort(b, e);
不能用于链表
示例
the quick red fox jumps over the slow red turtle
排序后
fox jumps over quick red red slow the the turtle
消除重复相邻元素
序列中元素有序: 重复元素相邻
覆盖相邻重复元素
不会改变容器大小
给出序列的所有元素, 使用迭代器范围: [b, e)
返回指向最后一个不重复元素下一位置的迭代器
1unique(b, e);
示例
fox jumps over quick red red slow the the turtle
去重后
fox jumps over quick red slow the turtle ??? ???
完整示例
对单词进行排序,去除重复单词
1void elimDups(vector<string> &words) 2{ 3 sort(words.begin(), words.end()); 4 5 auto end_unique = unique(words.begin(), words.end()); 6 // end_unique指向第一个??? 7 8 words.erase(end_unique, words.end()); 9 // 使用容器操作删除元素 10}