我有一個std::map<string, double>
,其成員是這個樣子:轉換STL映射到一個struct
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"]
是雙。
我懷疑答案是否定的,除非在編譯時有一些欺騙行爲。
編輯:可能不清楚我在找什麼。僞代碼版本這個例子看起來是這樣的:
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]
從你的問題中不清楚你想如何做映射。 –