C++ map STL错误:数组的APN2OrthRead的大小有非整数类型的const char(13)
我有以下类型的文件C++ map STL错误:数组的APN2OrthRead的大小有非整数类型的const char(13),c++,stl,C++,Stl,我有以下类型的文件 struct PolicyRuleInfo{ BearerQoSInfo stBearerQoS; TFTInfo stTFTInfo; PolicyRuleInfo(){}; PolicyRuleInfo( BearerQoSInfo const& qos, TFTInfo const& tft) : stBearerQoS(qos), stTFTInfo(tft) { } }; typedef ma
struct PolicyRuleInfo{
BearerQoSInfo stBearerQoS;
TFTInfo stTFTInfo;
PolicyRuleInfo(){};
PolicyRuleInfo( BearerQoSInfo const& qos, TFTInfo const& tft)
: stBearerQoS(qos), stTFTInfo(tft)
{ }
};
typedef map<string, PolicyRuleInfo> listOfPolicyRuleInfo;
struct IPAddressPolicyRulesInfo{
CIPAddress ipAddress;
listOfPolicyRuleInfo policyRules;
IPAddressPolicyRulesInfo(){};
IPAddressPolicyRulesInfo(CIPAddress ipaddr, string policyRuleName, PolicyRuleInfo policyRule): ipAddress(ipaddr){policyRules[policyRuleName]=policyRule;};
void addPolicycyRule(string policyRuleName, PolicyRuleInfo policyRule) { policyRules[policyRuleName]=policyRule; }
};
typedef map<string, IPAddressPolicyRulesInfo> APN2PolicyRules;
typedef map<string, APN2PolicyRules> IMSI2APNPolicyRules;
我得到的错误是数组'apn2policy'的大小具有非整数类型'const char[13]'
早些时候,我将listOfPolicyRuleInfo声明为typedef列表,但是当更改为map时,我得到了这个错误
谢谢,
pdk
这是错误的;您正在声明一个Apn_Internet×APN2PolicyRules对象数组,这显然是胡说八道
您必须首先创建地图,然后使用它:
正如您所看到的,Foo[Bar]语法在不同的上下文中意味着不同的东西
这是错误的;您正在声明一个Apn_Internet×APN2PolicyRules对象数组,这显然是胡说八道
您必须首先创建地图,然后使用它:
如您所见,Foo[Bar]语法在不同的上下文中表示不同的内容。APN2PolicyRules apn2policy[Apn_Internet]=IPAddressPolicyRules
此行试图声明APN2PolicyRules数组,但size参数是一个没有任何意义的字符串文本
您最可能想做的是:
APN2PolicyRules apn2policy; // create map
apn2policy["Apn_Internet"]=ipAddrPolicyRules; // set rule
APN2政策规则APN2政策[Apn_互联网]=IPAddressPolicyRules
此行试图声明APN2PolicyRules数组,但size参数是一个没有任何意义的字符串文本
您最可能想做的是:
APN2PolicyRules apn2policy; // create map
apn2policy["Apn_Internet"]=ipAddrPolicyRules; // set rule
您无法构造最小的测试用例?@Tomasz:APN2PolicyRules是一种映射类型。简而言之,这将起作用:apn2policy[Apn_Internet]=IPAddressPolicyRules@pdk:那么为什么你的问题不简单地说std::map?不要让我们把事情搞清楚。@TomaszKłak:请不要把答案写成注释。你不能构造一个最小的测试用例?@Tomasz:APN2PolicyRules是一种映射类型。简而言之,这将起作用:apn2policy[Apn_Internet]=ipAddressPolicyRules@pdk:那么为什么你的问题不简单地说std::map?不要让我们把事情搞清楚。@TomaszKłak:请不要把答案写成评论。@Lightness在轨道上比赛,Borgeader:我看到Borgeader的答案是在Lightness比赛前1分钟。我从Tomasz那里看到了答案,你们都是对的。我不知道该选哪一个。不过我不想不公平。请帮我提些建议:@pdk:不,我的回答是在博格里德的回答前一分钟。他只是抄了我的!所以接受我的:@Lightness在轨道上比赛,Borgeader:我看到Borgeader的答案是在Lightness比赛前1分钟。我从Tomasz那里看到了答案,你们都是对的。我不知道该选哪一个。不过我不想不公平。请帮我提些建议:@pdk:不,我的回答是在博格里德的回答前一分钟。他只是抄了我的!所以请接受我的观点:
APN2PolicyRules apn2policy; // (if it doesn't already exist)
apn2policy["Apn_Internet"] = ipAddrPolicyRules;
APN2PolicyRules apn2policy; // create map
apn2policy["Apn_Internet"]=ipAddrPolicyRules; // set rule