You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C++中两个独立map同key操作是否会互相影响?附代码示例

关于std::map的疑问解答

你代码中声明的m1和m2是两个完全独立的std::map对象,各自拥有独立的内存存储空间,键值对的读写操作完全隔离。就算两者存在相同的key,修改其中任意一个map的key对应值,都不会对另一个map的同key值产生任何影响,不存在你担心的同步自增情况。
你提交返回错误答案的问题和map的这个特性无关。

你提交的参考代码

#include<bits/stdc++.h>
using namespace std;
#define ll long long int
#define rep(i,a,b) for(ll i=a;i<b;i++)

void calculation(ll n,ll x)
{
     
     ll i,arr[n],k,max=INT_MIN,j=0,min=INT_MAX;
     map<ll,ll> m1,m2;
        
     rep(i,0,n)
     {
          cin>>arr[i];
          m1[arr[i]]++;
          
          
     }
     if(x==0)
     {
          rep(i,0,n)
          {
                 if(m1[arr[i]]>max)
                 max=m1[arr[i]];
          }
          cout<<max<<" 0\n";
     }
     else{
     rep(i,0,n)
     {
          if(m1[arr[i]]+m2[arr[i]]>=max && m2[arr[i]]<min){
          max=m1[arr[i]]+m2[arr[i]];
          min=m2[arr[i]];}
     }
     
     cout<<max<<" "<<min<<"\n";
        }

}
int main ()
{
     ll t,n,x;
     cin>>t;
     while(t--)
     {
          cin>>n>>x;
          calculation(n,x);
     }
     return 0;
}

内容的提问来源于stack exchange,提问作者Kalash Jain

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 07:30:04