求幫助一下如何設計這段代碼


我想實現一個類似於for循環打印名字相仿變量的東西。比如
int x1 = 1;
int x2 = 2;
int x3 = 3;
#define out(i) cout <<x##i << endl;
for (int i = 1 ; i <= 3 ; i++)
 out(i)


以上通過宏連接不能實現。除了反射還有什么辦法么。(需求被簡化了)

1 个解决方案

#1


最好把你的問題可以明確說一下,這樣可能能找到其他的辦法,以你的代碼來說,可以寫成這樣:
int main() {
map<string, int> m; 
m["x1"] = 1;
m["x2"] = 2; 
m["x3"] = 3; 
string prefix = "x"; 
for (int i = 1; i <= 3; i++) {
string k = prefix + string(1, '0' + i); 
cout << m[k] << endl; 
}

return 0; 
}

注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
粤ICP备14056181号  © 2014-2020 ITdaan.com