如何宣传商务网站,高品质的网站开发公司,大理 网站建设,济南官方网站目录
一、前言
二、去重函数 Unique() ✨头文件 ✨用法与作用 ✨注意点 三、常考面试题
四、共勉 一、前言 经常刷算法题的朋友#xff0c;肯定会经常看到题目中提到 去重 这样的字眼#xff0c;或者需要我们通过 去重 来解题#xff0c;由于之前对 去重 了解的不太清楚…目录
一、前言
二、去重函数 Unique() ✨头文件 ✨用法与作用 ✨注意点 三、常考面试题
四、共勉 一、前言 经常刷算法题的朋友肯定会经常看到题目中提到 去重 这样的字眼或者需要我们通过 去重 来解题由于之前对 去重 了解的不太清楚导致做题的时候总会卡住所以收集了一些资料来详解Unique。 二、去重函数 Unique() ✨头文件 unique函数 是STL 中比较实用的函数之一 包含该函数的函数头文件为 #include algorithm ✨用法与作用 函数作用“去除”容器或数组中相邻元素之间重复出现的元素所以一般使用前需要排序。函数参数第一个参数是集合的起始地址第二个参数是集合的最后一个元素的下一个元素的地址其实还有第三个参数比较函数但是几乎不用就不说了其实和sort函数很像。 int a[5]{1,4,2,7,2};sort(a,a5);unique(a,a5); 去重后不相同元素的个数就是函数返回值减去集合的初始位置。 int lenunique(a,a5)-a;//去重后不相同元素的个数 ✨注意点 a 这里的删除不是真的delete而是将重复的元素放到容器末尾c 一定要先对数组进行排序才可以使用unique函数b unique函数的返回值是去重之后的尾地址 int main()
{int myints[] { 10,20,20,20,30,30,20,20,10 }; vectorint myvector(myints, myints 9);cout 去重前 endl;for (int i 0; i 9; i){cout myvector[i] ;}cout endl;sort(myvector.begin(), myvector.end());vectorint::iterator it;it unique(myvector.begin(), myvector.end()); // 10 20 30 20 10 ? ? ?myvector.resize(distance(myvector.begin(), it)); // 10 20 30 20 10cout 去重后 endl;for (it myvector.begin(); it ! myvector.end(); it){cout *it ;}cout endl;return 0;
}三、常考面试题 题目存在重复元素链接217. 存在重复元素 class Solution {
public:bool containsDuplicate(vectorint nums) {sort(nums.begin(),nums.end());int len nums.size();int m unique(nums.begin(),nums.end()) - nums.begin();if(m!len){return true;}else{return false;}}
};
四、共勉 以下就是我对 Unique 函数 的理解如果有不懂和发现问题的小伙伴请在评论区说出来哦同时我还会继续更新对 C 的更新请持续关注我哦