gpt4 book ai didi

c++ - 在 C++ 中模拟 Python 字典时出现映射错误

转载 作者:行者123 更新时间:2023-11-28 04:13:15 25 4
gpt4 key购买 nike

#include <iostream>
#include <map>
using namespace std;

typedef std::map<string, string> Dict;
typedef Dict::const_iterator It;

Dict pre_flight;

pre_flight["Parking Brakes"]="SET";
pre_flight["Battery Switch"]="ON";
pre_flight["APU Generator"]="OFF";
pre_flight["APU Master Knob"]="OFF";
pre_flight["External Power"]="ON";
pre_flight["Landing Gear"]="DOWN";
pre_flight["Flaps Lever"]="UP";
pre_flight["Speedbrakes Lever"]="RETR.";
pre_flight["Engine Fuel Controls"]="CUTOFF";
pre_flight["Fuel Pump Switches"]="OFF";
pre_flight["Engine Instruments"]="CHECK";
pre_flight["Anti-Ice Controls"]="AUTO";
pre_flight["Altitude Setting"]="SET";
pre_flight["IFR Clearance"]="REQUEST";
pre_flight["Fuel Quantity"]="CHECK";
pre_flight["Beacon Lighting"]="ON";

Dict before_startup;

before_startup["Seat Belt Sign"]="ON";
before_startup["Fuel Quantity"]="CHECK";
before_startup["Engine Throttle"]="IDLE";
before_startup["Engines Area"]="CLEAR";
before_startup["Auto-brake Setting"]="RTO";
before_startup["Yaw Damper"]="ON";
before_startup["Fly-by-wire Setting"]="CHECK";
before_startup["Hydraulic ENG Pumps"]="ON";
before_startup["Hydraulic ELEC C1 Pump"]="ON";
before_startup["AC Packs 1 and 2"]="ON";
before_startup["Equipment Cooling"]="ON";
before_startup["Fuel Pumps"]="ON";
before_startup["Startup Clearance"]="REQUEST";

Dict engines_startup;
engines_startup["APU Master Knob"]="ON";
engines_startup["APU Generator"]="ON";
engines_startup["Engine EEC Modes"]="ON";
engines_startup["Engine Starter Knob"]="START";
engines_startup["Engine Fuel Controls"]="RUN";
engines_startup["Engine Generators L1, R1"]="ON";


Dict before_taxi;

before_taxi["Parking Brakes"]="SET";
before_taxi["Fuel Quantity"]="CHECK";
before_taxi["Taxi Lights"]="ON";
before_taxi["Navigation Lights"]="ON";
before_taxi["Instrument Displays"]="CHECK";
before_taxi["Taxi Clearance"]="REQUEST";

Dict taxi;

taxi["Flight Directors"]="ON";
taxi["Parking Brakes"]="OFF";

Dict pre_take_off;

pre_take_off["Take Off Flaps"]="SET";
pre_take_off["Speed Brakes"]="RETRACTED";
pre_take_off["Instruments"]="CHECK";
pre_take_off["Landing Lights"]="ON";
pre_take_off["Strobe Lights"]="ON";
pre_take_off["Parking Brakes"]="OFF";

void main()
{
string state;
cout << "Input the Check State: ";
cin >> state;
if (state == "Pre-Flight"){
pre_flight();
}
else if (state == "Before-Startup"){
before_startup();
}
else if (state == "Engines-Startup"){
engines_startup();
}
else if (state == "Before-Taxi"){
before_taxi();
}
else if (state == "Taxi"){
taxi();
}
else if (state == "Pre-Take-Off"){
pre_take_off();
}
else {
cout << "Enter a Valid State";
}
return 0;
}


void pre_flight(){
cout << "Input the State variables";
Dict pre_flight_input;

string texts[] = {"Parking Brakes", "Battery Switch", "APU Generator", "APU Master Knob", "External Power", "Landing Gear", "Flaps Lever", "Speedbrakes Lever", "Engine Fuel Controls",
"Fuel Pump Switches", "Engine Instruments", "Anti-Ice Controls", "Altitude Setting", "IFR Clearance", "Fuel Quantity", "Beacon Lighting"};
for( unsigned int a = 0; a < sizeof(texts); a = a + 1 )
{
cout << texts[a] << endl;
cin >> pre_flight_input[texts[a]];
}

for( unsigned int b = 0; b < sizeof(texts); b = b + 1)
{
if (pre_flight[texts[b]] == pre_flight_input[texts[b]]){
}
else {
cout << "Warning! State Mismatch for " << texts[b] << ". State must be " << pre_flight[texts[b]] << endl;
}
}
}

void before_startup(){
cout << "Input the State variables";
Dict before_startup_input;

string texts[] = {"Seat Belt Sign","Fuel Quantity","Engine Throttle","Engines Area","Auto-brake Setting","Yaw Damper","Fly-by-wire Setting","Hydraulic ENG Pumps","Hydraulic ELEC C1 Pump","AC Packs 1 and 2","Equipment Cooling",
"Fuel Pumps", "Startup Clearance"};
for( unsigned int a =0; a < sizeof(texts); a = a + 1)
{
cout << texts[a] << endl;
cin >> before_startup_input[texts[a]];
}

for( unsigned int b = 0; b < sizeof(texts); b = b + 1)
{
if (before_startup[texts[b]] == before_startup_input[texts[b]]){
}
else{
cout << "Warning! State Mismatch for " << texts[b] << ".State must be " << before_startup[texts[b]] << endl;
}
}
}

void engines_startup(){
cout << "Input the State variables";
Dict engines_startup_input;

string texts[] = {"APU Master Knob","APU Generator","Engine EEC Modes","Engine Starter Knob","Engine Fuel Controls","Engine Generators L1, R1"};
for( unsigned int a =0; a < sizeof(texts); a = a + 1)
{
cout << texts[a] << endl;
cin >> engines_startup_input[texts[a]];
}

for( unsigned int b = 0; b < sizeof(texts); b = b + 1)
{
if (engines_startup[texts[b]] == engines_startup_input[texts[b]]){
}
else{
cout << "Warning! State Mismatch for " << texts[b] << ".State must be " << engines_startup[texts[b]] << endl;
}
}
}

void before_taxi(){
cout << "Input the State variables";
Dict before_taxi_input;

string texts[] = {"Parking Brakes","Fuel Quantity","Taxi Lights","Navigation Lights","Navigation Lights","Instrument Displays","Taxi Clearance"};
for( unsigned int a =0; a < sizeof(texts); a = a + 1)
{
cout << texts[a] << endl;
cin >> before_taxi_input[texts[a]];
}

for( unsigned int b = 0; b < sizeof(texts); b = b + 1)
{
if (before_taxi[texts[b]] == before_taxi_input[texts[b]]){
}
else{
cout << "Warning! State Mismatch for " << texts[b] << ".State must be " << before_taxi[texts[b]] << endl;
}
}
}

void taxi(){
cout << "Input the State variables";
Dict taxi_input;

string texts[] = {"Flight Directors","Parking Brakes"};
for( unsigned int a =0; a < sizeof(texts); a = a + 1)
{
cout << texts[a] << endl;
cin >> taxi_input[texts[a]];
}

for( unsigned int b = 0; b < sizeof(texts); b = b + 1)
{
if (taxi[texts[b]] == taxi_input[texts[b]]){
}
else{
cout << "Warning! State Mismatch for " << texts[b] << ".State must be " << taxi[texts[b]] << endl;
}
}
}


void pre_take_off(){
cout << "Input the State variables";
Dict pre_take_off_input;

string texts[] = {"Take Off Flaps","Speed Brakes","Instruments","Landing Lights","Strobe Lights","Parking Brakes"};
for( unsigned int a =0; a < sizeof(texts); a = a + 1)
{
cout << texts[a] << endl;
cin >> pre_take_off_input[texts[a]];
}

for( unsigned int b = 0; b < sizeof(texts); b = b + 1)
{
if (pre_take_off[texts[b]] == pre_take_off_input[texts[b]]){
}
else{
cout << "Warning! State Mismatch for " << texts[b] << ".State must be " << pre_take_off[texts[b]] << endl;
}
}
}

我尝试使用模拟 Python 字典的 C++ 中的 map 创建一个简单的波音 787 飞行前检查表检查器。但是在编译时,我的错误日志消息显示如下:

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;
^~~~~~~~~~~~

如能帮助解决此错误,我们将不胜感激。我正在关注这里的示例: Translating python dictionary to C++

根据定义的语法,我假设我的代码中的字典定义是正确的,但是它显示了类型错误。

最佳答案

您需要将代码放入某种函数中。在函数之外你唯一可以拥有的就是声明之类的东西。放

pre_flight["Parking Brakes"]="SET";

除了在 main 函数或其他函数中声明之外,还有其他代码会做一些事情。

关于c++ - 在 C++ 中模拟 Python 字典时出现映射错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57228360/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com