将结构成员映射到键

时间:2018-02-19 09:36:05

标签: c++ struct mapping backend

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

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

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

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

密钥地址对应于后端的 p1.adrs 的值。

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

我的问题是如何在外部文件中为密钥及其特定结构成员进行映射以及如何获取该密钥的值。

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

1 个答案:

答案 0 :(得分:0)

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

myfile.h

<?xml version="1.0" encoding="utf-8"?>
<ripple xmlns:android="http://schemas.android.com/apk/res/android"
    android:color="yourcolorcode">

    <item
        android:id="@android:id/mask"
        android:drawable="@android:color/white" />
</ripple>

MYFILE.CPP

#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

的main.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;}
}