栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

STL中count方法总结

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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<
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/630153.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号