在我的项目中,我必须调用一个第三方API,该API将以结构形式(以下示例)给出结果。
typedef struct _innerTest
{
int Status1;
bool Status2;
std::vector<int> Status3;
}InnerTest;
typedef struct _test
{
int Status1;
bool Status2;
InnerTest InnerStatus;
}Test;
一旦获得结果,就必须在内部设置这些值。结构中的每个值都将映射到某个字符串(这些字符串需要在内部更新值)。例如,映射可以如下所示:
Test.Status1 <--> Status1
Test.Status2 <--> Status2
Test.InnerStatus.Status1 <--> Status3
Test.InnerStatus.Status2 <--> Status4
Test.InnerStatus.Status3[0] <--> Status5
Test.InnerStatus.Status3[1] <--> Status6
维护映射信息的最佳方法是什么。请注意,结构内部向量的大小可以变化。例如,如果添加了新状态,我只想将映射信息添加到一些xml / config文件中,并且代码应该可以正常工作而不做任何更改。我只希望一些指针前进。 (仅供参考,如有必要,我可以使用boost库。)
我试图尽可能简单地解释我的问题。请在评论中问我是否需要更多详细信息。
@ edited1
我可以将上述建议的映射信息保存在我的内部数据库中。但是,在那之后我该如何映射,Test.Status1
应该采用test.Status1
的值形式(结构变量)。
@ edited2
就我而言,大约有60个状态项。因此,我不想编写if/switch
语句来读取struct
。有没有比这更好的方法了?