STL中count方法总结

STL中count方法总结,第1张

STL中count方法总结 vector<>


没有count方法

map<,>


有count(key)方法,但是由于map中元素是以键值对的形式存在,且键(key)是唯一的,所以count(key)最大返回1。

set<>


有count(val)方法,但是由于set容器中各个元素的值是唯一的,因此该函数的返回值最大为1.

unordered_map<,>


有count(key)方法,在容器中查找以key键的键值对的个数。与map相同,最大返回1。

unordered_set<>


有conut(key)方法,与set类似,最大返回1。

总结

通过细看各个容器的count()方法,最终发现除了vector没有count方法外,其他容器都有,且都只能最大返回1。

所以这也揭开了我的一个疑惑,之前一直想着用容器.count()方法去计算容器内某个元素的个数,现在终于解惑了,容器中都是去重的(除了vector),并不需要计算个数。

而当我们用map或者unordered_map去存储某个元素出现多少次时,count方法只是一个先行的判断条件,判断是否存在,而不是判断有多少个。如果要判断个数,应该用下标描述,例如temp[num]。

例题

class Solution {
public:
    vector intersect(vector& nums1, vector& nums2) 
    {
        if (nums1.size() > nums2.size()) 
        {
            return intersect(nums2, nums1);
        }
        vector res;
        unordered_map time;

        for(auto p : nums1)
        {
            time[p]++;
        }
        for(auto num : nums2)
        {
            if(time.count(num))  //这个是判断nums1中是否有num
            {
                cout<					
										


					

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5636033.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-16
下一篇 2022-12-16

发表评论

登录后才能评论

评论列表(0条)

保存