2016-10-20 32 views
1

我一直在尋找這個答案一個星期。我還沒有找到解決方案。我想知道是否可以從一個字符串向量中聲明一個原語的名字。 這意味着如果我有一個類接受一個字符串,將它推回到一個字符串的矢量中,然後我想用每個字符串的名稱來聲明一個float的原語。從字符串C++的向量的基元列表

vector<string> myVec; 
Test::setCoordinate(string &myStr){ 
    myVec.push_back(myStr); 
} 

現在我想每個名稱都是float型變量的容器。

+0

你所說的「原始人」的意思是什麼? – Galik

+1

動態變量創建(如果這就是你想要做的)是一個糟糕的,混亂的想法。這很少,如果有必要的話。 – Carcigenicate

+2

也許'std :: map '是你在找什麼? – Galik

回答

4

不,這是不可能的。 C++沒有任何動態代碼生成功能,允許從運行時數據(如字符串)命名變量。

你可以得到的最接近的是一樣的東西:

std::map<std::string, float> values; 
values["f1"] = 0.3; 
values["f2"] = 0.6; 
+0

等待,因爲什麼時候在'0.3f'中忽略'f'不會發出警告? –

+0

這是'double'類型的字面值,爲什麼會發出警告? –

+0

將'double'保存爲'float'可能會導致縮小,而不是? –

相關問題