c++ map使用问题

[Error]nomatchfor'operator[]'(operandtypesare'std::map<std::basic_string<char>,int>[1... [Error] no match for 'operator[]' (operand types are 'std::map<std::basic_string<char>, int> [11]' and 'std::string {aka std::basic_string<char>}') 这是什么问题?

/*
ID:oycy0301
PROB:gift1
LANG:C++
*/
#include<iostream>
#include<cstdio>
#include<cstring>
#include<map>
#include<string>
using namespace std;
map<string,int> m[11];
int np,n;
int s[11];
int main()
{
freopen("gift1.in","r",stdin);
freopen("gift1.out","w",stdout);
scanf("%d",&np);
for (int i=1;i<=np;i++)
scanf("%s",&s[i]);
for (int i=1;i<=np;i++)
{
string ss;
int mm;
scanf("%s",&ss);
scanf("%d %d",&mm,&n);
m[ss]=mm;
for (int j=1;j<=n;j++)
{
string st;
scanf("%s",&st);
m[st]+=m[ss]/n;
}
m[ss]%=n;
}
for (int i=1;i<=np;i++)
printf("%s %d\n",s[i],m[s[i]]);
return 0;
}
什么问题?
展开
 我来答
百度网友5e91607da
2017-07-17 · 超过28用户采纳过TA的回答
知道答主
回答量:96
采纳率:100%
帮助的人:45.2万
展开全部
map<string,int> m[11]; std::map没有这种构造函数.
map的构造函数就以下几种
Template<class T1, class T2>

  map(); // 默认构造函数

  map(const map& m) // 拷贝构造函数

  map(iterator begin, iterator end ); //区间构造函数

  map(iterator begin, iterator end, const traits& _compare) //带比较谓词的构造函数

  map(iterator begin, iterator end, const traits& _compare, const allocator& all) //带分配器
追问
我知道了,应该是
mapm;
本身map就是一个类似数组的存在
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式