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;
}
什么问题? 展开
/*
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;
}
什么问题? 展开
1个回答
展开全部
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) //带分配器
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就是一个类似数组的存在
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询