将结构成员映射到键

map structure member to key

我想从后端获取某个键的值。

在后端定义结构并初始化值。 将此视为后端中定义的结构:

struct person{
    string nme;
    string adrs;
    int id;
};

person p1 = {"steve","ABC street",23};

keyaddress对应后端p1.adrs的value

现在键 地址 将被映射到外部文件中的 (p1 & adrs) 并且应该得到值 "ABC street".

我的问题是如何为外部文件中的键及其特定结构成员完成映射,以及如何为该键获取值。

这里 我可以使用 std::map 概念吗?

我得到了需求的解决方案。但是为了进一步改进它,映射是在单独的文件中声明的(这里是在.h文件中声明的)

myfile.h

#ifndef MYFILE_H
#define MYFILE_H
#include <iostream>
#include <algorithm>
#include<vector>
#include <string>
#include <map>

using namespace std;

struct Chassis
{
    string InLED;
    string AstTg;
};

struct Manager
{
    string MngrType;
    int count;
};

  const Chassis chassis1={"On","null"}; 
  const Manager manager1={"BMC",23};    

  const map<string, const string>cha1={{"IndicatorLED", chassis1.InLED},{"AssetTag",chassis1.AstTg},{"ManagerType",manager1.MngrType}};
  const map<string, int>cha2={{"Count",manager1.count}};

void func(string);

#endif

myfile.cpp

#include <iostream>
#include <string>
#include "myfile.h"
#include <map>
using namespace std;

void func(string item)
{ if(cha1.find(item) == cha1.end()) {if (cha2.find(item) == cha2.end()){} else {cout<< item<<":"<<cha2.at(item)<<endl;} }
  else {cout<< item<<":"<<cha1.at(item)<<endl;}
}

main.cpp

#include <iostream>
#include <string>
using namespace std;
#include "myfile.h"

int main() {
string item="IndicatorLED";
func (item);

string item1="AssetTag";
func(item1);

string item2="ManagerType";
func(item2);

string item3="Count";
func(item3);    
}