首页 > 编程语言 >C++ map踩坑

C++ map踩坑

时间:2024-03-26 22:13:51浏览次数:35  
标签:tmp map ++ auto count C++ find

目录


    !!!不要直接使用[]来操作map,否则会有意想不到的错误。尽量使用map提供的函数(count、find、insert、erase)来操作map

    242. 有效的字母异位词

    描述:
    给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词。
    注意:若 s 和 t 中每个字符出现的次数都相同,则称 s 和 t 互为字母异位词。
    示例 1:
    输入: s = "anagram", t = "nagaram"
    输出: true
    示例 2:
    输入: s = "rat", t = "car"
    输出: false

    class Solution {
    public:
        bool isAnagram(string s, string t) {
            map<char, int> _map;
            for(int i = 0; i < s.size(); i++) {
                if (_map.count(s[i]) == 0) {
                    _map.insert(make_pair(s[i], 1));
                } else {
                    auto tmp = _map.find(s[i]);
                    tmp->second++;
                }
            }
    
            for (int i = 0; i < t.size(); i++) {
                if (_map.count(t[i]) > 0) {
                    auto tmp = _map.find(t[i]);
                    tmp->second--;
                    if (tmp->second == 0) {
                        _map.erase(tmp);
                    }
                } else {
                    for (auto it : _map) {
                        cout << it.first << ":" << it.second << endl;
                    }
    
                    return false;
                }
            }
    
            if (_map.size() > 0) {
                return false;
            }
    
            return true;
        }
    };
    

    标签:tmp,map,++,auto,count,C++,find
    From: https://www.cnblogs.com/yubo-guan/p/18097728

    相关文章

    • C++ 用户输入与数据类型详解:建立基本计算器及变量类型
      C++用户输入你已经学习了cout用于输出(打印)值。现在我们将使用cin来获取用户输入。cin是一个预定义变量,它使用提取运算符(>>)从键盘读取数据。在下面的示例中,用户可以输入一个数字,该数字存储在变量x中。然后我们打印x的值:示例intx;cout<<"Typeanumber:";//......
    • C++ 用户输入与数据类型详解:建立基本计算器及变量类型
      C++用户输入你已经学习了cout用于输出(打印)值。现在我们将使用cin来获取用户输入。cin是一个预定义变量,它使用提取运算符(>>)从键盘读取数据。在下面的示例中,用户可以输入一个数字,该数字存储在变量x中。然后我们打印x的值:示例intx;cout<<"Typeanumber:"......
    • C++文件类(文件流类)及用法详解
      open()fstreamifstreamofstream打开指定文件,使其与文件流对象相关联。is_open()检查指定文件是否已打开。close()关闭文件,切断和文件流对象的关联。swap()交换2个文件流对象。operator>>fstreamifstream重载>>运算符,用于从指定文件中读取数据。gcoun......
    • 蓝桥杯 试题 基础练习 十进制转十六进制 C++
      问题描述十六进制数是在程序设计时经常要使用到的一种整数的表示方式。它有0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F共16个符号,分别表示十进制数的0至15。十六进制的计数方法是满16进1,所以十进制数16在十六进制中是10,而十进制的17在十六进制中是11,以此类推,十进制的30在十六进制......
    • C++的format函数
      C++20引入了<format>库,它提供了类似于Python的格式化字符串的功能。你可以使用std::format函数来格式化字符串。format   格式控制标记  [[fill]align][sign][#][0][wigth][precision][type]下面依次讲解format的格式控制标记的基本用法:1.[[fill]align]这个格式......
    • CMakeLists_find_package以及C++基本语法
      命令catkin_make等效于以下指令:cd~/catkin_wscdsrccatkin_init_workspacecd..mkdirbuildcdbuildcmake../src-DCMAKE_INSTALL_PREFIX=../install-DCATKIN_DEVEL_PREFIX=../devel命令cmake与makeinstall-DCMAKE_BUILD_TYPE=:releasedebug-DCMAK......
    • 一个C/C++出身的程序员,如果想成为一个黑客,需要多久时间?
      黑客,在没有学习编程的人眼中,是无所不能的存在,盗密码,黑网站,网络入侵,偷取数据等,一台电脑,全部搞定!而且很多同学的话开始学习编程的原因就是被黑客的这个技术所吸引的。说起来,好像笔者当年也觉得黑客很厉害,所以的话多多少少我成为C/C++工程师也是有以前的因素的影响,不过后来接触......
    • Vue学习笔记61--mapActions + mapMutations
      原始实现 <template><div><h3>当前求和*10为:{{bigSum}}</h3><h3>当前求和为:{{sum}}</h3><h3>我在:{{school}},学习:{{subject}}</h3><selectv-model.number="selectNo"><option......
    • ccf-csp-2020-12-2期末预测之最佳阈值(c++满分题解)
      这个题暴力是可以有70分的,下面是暴力代码:(注释写的比较清楚了,也很好理解)#include<iostream>#include<vector>#include<set>#include<algorithm>usingnamespacestd;boolsort1(pair<int,int>vec1,pair<int,int>vec2)//对阈值从小到大排序{ returnvec1.first<=ve......
    • CUTLASS: Fast Linear Algebra in CUDA C++
      https://developer.nvidia.com/blog/cutlass-linear-algebra-cuda/EfficientMatrixMultiplicationonGPUs计算密集度=(时间复杂度/空间复杂度)=O(N^3)/O(N^2)=O(N)//naivefor(inti=0;i<M;++i)for(intj=0;j<N;++j)for(intk=0;k<......