C++ 在C+;中模拟Python字典时出现映射错误+;
如能帮助解决此错误,将不胜感激。 下面我举一个例子:C++ 在C+;中模拟Python字典时出现映射错误+;,c++,dictionary,typeerror,C++,Dictionary,Typeerror,如能帮助解决此错误,将不胜感激。 下面我举一个例子: 根据定义的语法,我假设代码中的字典定义是正确的,但是它显示了一个类型错误 您需要将代码放入某种函数中。在函数之外,您只能拥有声明之类的东西。放 main.cpp:10:1: error: ‘pre_flight’ does not name a type pre_flight["Parking Brakes"]="SET"; ^~~~~~~~~~ main.cpp:11:1: error: ‘pre_flight’ does not n
根据定义的语法,我假设代码中的字典定义是正确的,但是它显示了一个类型错误 您需要将代码放入某种函数中。在函数之外,您只能拥有声明之类的东西。放
main.cpp:10:1: error: ‘pre_flight’ does not name a type
pre_flight["Parking Brakes"]="SET";
^~~~~~~~~~
main.cpp:11:1: error: ‘pre_flight’ does not name a type
pre_flight["Battery Switch"]="ON";
^~~~~~~~~~
main.cpp:12:1: error: ‘pre_flight’ does not name a type
pre_flight["APU Generator"]="OFF";
^~~~~~~~~~
main.cpp:13:1: error: ‘pre_flight’ does not name a type
pre_flight["APU Master Knob"]="OFF";
^~~~~~~~~~
main.cpp:14:1: error: ‘pre_flight’ does not name a type
pre_flight["External Power"]="ON";
^~~~~~~~~~
main.cpp:15:1: error: ‘pre_flight’ does not name a type
pre_flight["Landing Gear"]="DOWN";
^~~~~~~~~~
main.cpp:16:1: error: ‘pre_flight’ does not name a type
pre_flight["Flaps Lever"]="UP";
^~~~~~~~~~
main.cpp:17:1: error: ‘pre_flight’ does not name a type
pre_flight["Speedbrakes Lever"]="RETR.";
^~~~~~~~~~
main.cpp:18:1: error: ‘pre_flight’ does not name a type
pre_flight["Engine Fuel Controls"]="CUTOFF";
^~~~~~~~~~
main.cpp:19:1: error: ‘pre_flight’ does not name a type
pre_flight["Fuel Pump Switches"]="OFF";
^~~~~~~~~~
main.cpp:20:1: error: ‘pre_flight’ does not name a type
pre_flight["Engine Instruments"]="CHECK";
^~~~~~~~~~
main.cpp:21:1: error: ‘pre_flight’ does not name a type
pre_flight["Anti-Ice Controls"]="AUTO";
^~~~~~~~~~
main.cpp:22:1: error: ‘pre_flight’ does not name a type
pre_flight["Altitude Setting"]="SET";
^~~~~~~~~~
main.cpp:23:1: error: ‘pre_flight’ does not name a type
pre_flight["IFR Clearance"]="REQUEST";
^~~~~~~~~~
main.cpp:24:1: error: ‘pre_flight’ does not name a type
pre_flight["Fuel Quantity"]="CHECK";
^~~~~~~~~~
main.cpp:25:1: error: ‘pre_flight’ does not name a type
pre_flight["Beacon Lighting"]="ON";
^~~~~~~~~~
main.cpp:29:1: error: ‘before_startup’ does not name a type
before_startup["Seat Belt Sign"]="ON";
^~~~~~~~~~~~~~
main.cpp:30:1: error: ‘before_startup’ does not name a type
before_startup["Fuel Quantity"]="CHECK";
^~~~~~~~~~~~~~
main.cpp:31:1: error: ‘before_startup’ does not name a type
before_startup["Engine Throttle"]="IDLE";
^~~~~~~~~~~~~~
main.cpp:32:1: error: ‘before_startup’ does not name a type
before_startup["Engines Area"]="CLEAR";
^~~~~~~~~~~~~~
main.cpp:33:1: error: ‘before_startup’ does not name a type
before_startup["Auto-brake Setting"]="RTO";
^~~~~~~~~~~~~~
main.cpp:34:1: error: ‘before_startup’ does not name a type
before_startup["Yaw Damper"]="ON";
^~~~~~~~~~~~~~
main.cpp:35:1: error: ‘before_startup’ does not name a type
before_startup["Fly-by-wire Setting"]="CHECK";
^~~~~~~~~~~~~~
main.cpp:36:1: error: ‘before_startup’ does not name a type
before_startup["Hydraulic ENG Pumps"]="ON";
^~~~~~~~~~~~~~
main.cpp:37:1: error: ‘before_startup’ does not name a type
before_startup["Hydraulic ELEC C1 Pump"]="ON";
^~~~~~~~~~~~~~
main.cpp:38:1: error: ‘before_startup’ does not name a type
before_startup["AC Packs 1 and 2"]="ON";
^~~~~~~~~~~~~~
main.cpp:39:1: error: ‘before_startup’ does not name a type
before_startup["Equipment Cooling"]="ON";
^~~~~~~~~~~~~~
main.cpp:40:1: error: ‘before_startup’ does not name a type
before_startup["Fuel Pumps"]="ON";
^~~~~~~~~~~~~~
main.cpp:41:1: error: ‘before_startup’ does not name a type
before_startup["Startup Clearance"]="REQUEST";
^~~~~~~~~~~~~~
main.cpp:47:1: error: ‘engines_startup’ does not name a type
engines_startup["APU Master Knob"]="ON";
^~~~~~~~~~~~~~~
main.cpp:48:1: error: ‘engines_startup’ does not name a type
engines_startup["APU Generator"]="ON";
^~~~~~~~~~~~~~~
main.cpp:49:1: error: ‘engines_startup’ does not name a type
engines_startup["Engine EEC Modes"]="ON";
^~~~~~~~~~~~~~~
main.cpp:50:1: error: ‘engines_startup’ does not name a type
engines_startup["Engine Starter Knob"]="START";
^~~~~~~~~~~~~~~
main.cpp:51:1: error: ‘engines_startup’ does not name a type
engines_startup["Engine Fuel Controls"]="RUN";
^~~~~~~~~~~~~~~
main.cpp:52:1: error: ‘engines_startup’ does not name a type
engines_startup["Engine Generators L1, R1"]="ON";
^~~~~~~~~~~~~~~
main.cpp:57:1: error: ‘before_taxi’ does not name a type
before_taxi["Parking Brakes"]="SET";
^~~~~~~~~~~
main.cpp:58:1: error: ‘before_taxi’ does not name a type
before_taxi["Fuel Quantity"]="CHECK";
^~~~~~~~~~~
main.cpp:59:1: error: ‘before_taxi’ does not name a type
before_taxi["Taxi Lights"]="ON";
^~~~~~~~~~~
main.cpp:60:1: error: ‘before_taxi’ does not name a type
before_taxi["Navigation Lights"]="ON";
^~~~~~~~~~~
main.cpp:61:1: error: ‘before_taxi’ does not name a type
before_taxi["Instrument Displays"]="CHECK";
^~~~~~~~~~~
main.cpp:62:1: error: ‘before_taxi’ does not name a type
before_taxi["Taxi Clearance"]="REQUEST";
^~~~~~~~~~~
main.cpp:66:1: error: ‘taxi’ does not name a type
taxi["Flight Directors"]="ON";
^~~~
main.cpp:67:1: error: ‘taxi’ does not name a type
taxi["Parking Brakes"]="OFF";
^~~~
main.cpp:71:1: error: ‘pre_take_off’ does not name a type
pre_take_off["Take Off Flaps"]="SET";
^~~~~~~~~~~~
main.cpp:72:1: error: ‘pre_take_off’ does not name a type
pre_take_off["Speed Brakes"]="RETRACTED";
^~~~~~~~~~~~
main.cpp:73:1: error: ‘pre_take_off’ does not name a type
pre_take_off["Instruments"]="CHECK";
^~~~~~~~~~~~
main.cpp:74:1: error: ‘pre_take_off’ does not name a type
pre_take_off["Landing Lights"]="ON";
^~~~~~~~~~~~
main.cpp:75:1: error: ‘pre_take_off’ does not name a type
pre_take_off["Strobe Lights"]="ON";
^~~~~~~~~~~~
main.cpp:76:1: error: ‘pre_take_off’ does not name a type
pre_take_off["Parking Brakes"]="OFF";
^~~~~~~~~~~~
main.cpp:78:11: error: ‘::main’ must return ‘int’
void main()
^
main.cpp: In function ‘int main()’:
main.cpp:84:17: error: no match for call to ‘(Dict {aka std::map, std::basic_string >}) ()’
pre_flight();
^
main.cpp:87:21: error: no match for call to ‘(Dict {aka std::map, std::basic_string >}) ()’
before_startup();
^
main.cpp:90:22: error: no match for call to ‘(Dict {aka std::map, std::basic_string >}) ()’
engines_startup();
^
main.cpp:93:18: error: no match for call to ‘(Dict {aka std::map, std::basic_string >}) ()’
before_taxi();
^
main.cpp:96:11: error: no match for call to ‘(Dict {aka std::map, std::basic_string >}) ()’
taxi();
^
main.cpp:99:19: error: no match for call to ‘(Dict {aka std::map, std::basic_string >}) ()’
pre_take_off();
^
main.cpp: In function ‘void pre_flight()’:
main.cpp:108:17: error: ‘void pre_flight()’ redeclared as different kind of symbol
void pre_flight(){
^
main.cpp:8:6: note: previous declaration ‘Dict pre_flight’
Dict pre_flight;
^~~~~~~~~~
main.cpp: In function ‘void before_startup()’:
main.cpp:130:21: error: ‘void before_startup()’ redeclared as different kind of symbol
void before_startup(){
^
main.cpp:27:6: note: previous declaration ‘Dict before_startup’
Dict before_startup;
^~~~~~~~~~~~~~
main.cpp: In function ‘void engines_startup()’:
main.cpp:152:22: error: ‘void engines_startup()’ redeclared as different kind of symbol
void engines_startup(){
^
main.cpp:43:6: note: previous declaration ‘Dict engines_startup’
Dict engines_startup;
^~~~~~~~~~~~~~~
main.cpp: In function ‘void before_taxi()’:
main.cpp:173:18: error: ‘void before_taxi()’ redeclared as different kind of symbol
void before_taxi(){
^
main.cpp:55:6: note: previous declaration ‘Dict before_taxi’
Dict before_taxi;
^~~~~~~~~~~
main.cpp: In function ‘void taxi()’:
main.cpp:194:11: error: ‘void taxi()’ redeclared as different kind of symbol
void taxi(){
^
main.cpp:64:6: note: previous declaration ‘Dict taxi’
Dict taxi;
^~~~
main.cpp: In function ‘void pre_take_off()’:
main.cpp:216:19: error: ‘void pre_take_off()’ redeclared as different kind of symbol
void pre_take_off(){
^
main.cpp:69:6: note: previous declaration ‘Dict pre_take_off’
Dict pre_take_off;
^~~~~~~~~~~~
除了在main函数或其他函数中声明之外,其余代码都会执行一些操作。您要做的是初始化映射,但实际上您正在创建一个空映射,并通过添加值来更改它。这会导致错误,因为您试图在块范围之外更改全局变量 在这种情况下,您应该在声明时初始化映射 例如,使用大括号初始化:
pre_flight["Parking Brakes"]="SET";
std::飞行前地图{{“停车制动器”,“设置”},
{“APU生成器”、“关闭”},
{“APU主旋钮”,“关闭”};
我遵循下面的例子——可执行代码进入C++中的函数,就像链接到的示例一样。
pre_flight["Parking Brakes"]="SET";
std::map<std::string, std::string> pre_flight{{"Parking Brakes", "SET"},
{"APU Generator", "OFF"},
{"APU Master Knob", "OFF"}};