【发布时间】:2012-06-11 16:18:15
【问题描述】:
我有一个std::map<string, double>,其成员看起来像:
X = [{"N", 200}, {"sigma", 1.0}, {"T", .2}]
现在,给定结构 foo Y:
struct foo {
int N;
double T;
};
我能否以编程方式映射键/值对 X -> Y而不为每个 X -> Y 类型映射编写自定义类?请注意:
-
X["sigma"]不在Y中,即映射不一定是一对一的 -
Y.N的类型是 int 而X["N"]是 double。
我怀疑答案是否定的,除非在编译时做了一些诡计。
编辑:我可能不清楚我在寻找什么。此示例的伪代码版本如下所示:
if("N" in X) -> Y.N = X["N"];
if("T" in X) -> Y.T = X["T"];
或以编程方式:
for key in Y:
if (key in X) -> Y.key = X[key]
【问题讨论】:
-
从您的问题中不清楚您想如何进行映射。