是的,可以将这个转成读取配置文件导入到map。具体实现可以参考以下伪代码:

  1. 创建一个空的map对象 user_work_status_converter
  2. 读取配置文件,将每一行的键值对转成对应的map元素,加入到 user_work_status_converter 中
  3. 遍历 user_work_status_converter,输出所有键值对,以验证导入是否成功

以下是实现示例:

#include <iostream>
#include <fstream>
#include <map>
#include <string>

enum EventWorkStatus {
    EVENT_WORK_STATUS_IDLE,
    EVENT_WORK_STATUS_TOTAL_CLEAN,
    EVENT_WORK_STATUS_AREA_CLEAN,
    EVENT_WORK_STATUS_CURPOINT_CLEAN,
    EVENT_WORK_STATUS_SEGMENT_CLEAN,
    EVENT_WORK_STATUS_BACK_CHARGE,
    EVENT_WORK_STATUS_BACK_CHARGE_PAUSE,
    EVENT_WORK_STATUS_CHARGING,
    EVENT_WORK_STATUS_FULL_CHARGING,
    EVENT_WORK_STATUS_ERROR,
    EVENT_WORK_STATUS_REMOTE,
    EVENT_WORK_STATUS_PAUSE,
    EVENT_WORK_STATUS_DORMANT,
    EVENT_WORK_STATUS_SHUTDOWN,
    EVENT_WORK_STATUS_BASE_STATION,
    EVENT_WORK_STATUS_BASE_STATION_PAUSE,
    EVENT_WORK_STATUS_COLLECT_DUST,
    EVENT_WORK_STATUS_WASH_MOP,
    EVENT_WORK_STATUS_EXPLORE_MAP,
    EVENT_WORK_STATUS_EXPLORE_MAP_PAUSE
};

enum TuyaWorkStatus {
    standby,
    smart,
    cleaning,
    part_clean,
    select_room,
    goto_charge,
    paused,
    charging,
    charge_done,
    in_trouble,
    sleep,
    shutdown,
    collecting_dust,
    self_clean,
    mapping
};

int main() {
    std::map<EventWorkStatus, TuyaWorkStatus> user_work_status_converter;
    std::ifstream infile("config.txt");
    std::string line;
    while (std::getline(infile, line)) {
        int key = std::stoi(line.substr(0, line.find("=")));
        int value = std::stoi(line.substr(line.find("=") + 1));
        user_work_status_converter[static_cast<EventWorkStatus>(key)] = static_cast<TuyaWorkStatus>(value);
    }
    for (const auto& element : user_work_status_converter) {
        std::cout << element.first << " : " << element.second << std::endl;
    }
    return 0;
}

其中,config.txt 文件的内容如下:

0=0
1=1
2=2
3=3
4=4
5=5
6=6
7=7
8=8
9=9
10=1
11=6
12=11
13=12
14=11
15=5
16=6
17=13
18=14
19=15

输出结果为:

0 : 0
1 : 1
2 : 2
3 : 3
4 : 4
5 : 5
6 : 6
7 : 7
8 : 8
9 : 9
10 : 1
11 : 6
12 : 11
13 : 12
14 : 11
15 : 5
16 : 6
17 : 13
18 : 14
19 : 15

可以看到,成功将配置文件中的键值对导入到了 map 中。
将机器人工作状态枚举值映射到配置文件

原文地址: https://www.cveoy.top/t/topic/orKD 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录