我创建了将枚举与字符串连接起来的地图,以便更轻松地完成当前项目。代码如下所示:
struct responseMap : public std::map < std::string, CitizenType > {
responseMap() {
this->operator[]("slave") = CitizenType::slave;
this->operator[]("trader") = CitizenType::trader;
this->operator[]("priest") = CitizenType::priest;
this->operator[]("scholar") = CitizenType::scholar;
this->operator[]("soldier") = CitizenType::soldier;
this->operator[]("archer") = CitizenType::archer;
this->operator[]("swordsman") = CitizenType::swordsman;
this->operator[]("emperor") = CitizenType::emperor;
}
};
我的枚举就是这些类型,在地图中描述。一切正常,它不算“奴隶”作为地图的一员。例如,如果我写下以下代码:
responseMap myMap;
std::cout<<myMap["slave"]<<" "<<myMap["trader"];
它会生成以下行:0 1
我的问题是为什么会发生这种情况,因为我用同样的方式描述它们?
编辑:我正在尝试使用这样的法线贴图:
std::map<std::string, CitizenType> otherMap = {
{ "slave", CitizenType::slave },
{ "trader", CitizenType::trader },
{ "priest", CitizenType::priest },
{ "scholar", CitizenType::scholar },
{ "soldier", CitizenType::soldier },
{ "archer", CitizenType::archer },
{ "swordsman", CitizenType::swordsman },
{ "emperor", CitizenType::emperor },
};
它仍然输出相同的值。
答案 0 :(得分:3)
如果您没有采用不同的方式设置,public class Categori extends ActionBarActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_categori);
// Buscar AdView como recurso y cargar una solicitud.
AdView adView = (AdView)this.findViewById(R.id.adView);
AdRequest adRequest = new AdRequest.Builder().build();
adView.loadAd(adRequest);
WebView wv = (WebView) findViewById(R.id.webView);
WebSettings webSettings = wv.getSettings();
webSettings.setBuiltInZoomControls(true);
wv.loadUrl("http://android.vrt.ro/tv-update/ap5.html");
Intent promptInstall = new Intent(Intent.ACTION_VIEW)
.setDataAndType(Uri.parse("file:///sdcard/updates/update.apk"),
"application/vnd.android.package-archive");
startActivity(promptInstall);
inapoibuton();
filmebuton();
nationalebuton();
stiributon();
muzica();
documentarebunton();
sportbuton();
altlebuton();
pentrupiticibuton();
xxxbuton();
}
将从0开始编号 - 因此它不会忽略您的值,您的值为0.您可能需要查看{{3} },尤其是关于&#34的部分;如果第一个枚举器没有初始值设定项,则关联值为零。对于其定义没有初始值设定项的任何其他枚举器,关联值是前一个枚举器的值加一。&#34;