将结构成员映射到键
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);
}
我想从后端获取某个键的值。
在后端定义结构并初始化值。 将此视为后端中定义的结构:
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);
}