將我的評論展開爲答案。
C++沒有反射:沒有通用的方法來使用包含其標識符的字符串引用變量(或其他)。
但是,有數據結構可用於基於密鑰(如字符串)檢索數據。在你的情況下,你可以做這樣的事情:
#include <iostream>
#include <map>
#include <string>
#include <vector>
int main() {
std::map<std::string, std::vector<int> > allArrays; // mapping strings to vectors of ints
allArrays["array"].push_back(1); // fill vector stored under key "array"
allArrays["array"].push_back(2);
allArrays["array"].push_back(3);
// another way:
std::vector<int> &vec = allArrays["another_array"];
vec.push_back(-1);
vec.push_back(-2);
vec.push_back(-3);
std::string name = "array";
for (size_t i = 0; i < allArrays[name].size(); ++i) {
std::cout << allArrays[name][i] << '\n'; //not using endl - no need to flush after every line
}
}
這段代碼甚至不會接近編譯,在你嘗試了一些難度後再回到我們。 – 2013-03-23 12:44:20
C++沒有反射 - 沒有通用的方法來使用包含其標識符的字符串來引用變量(或其他)。 – Angew 2013-03-23 12:45:06
如果您嘗試將值與某個鍵關聯,則可以使用地圖。否則,你想在這裏是不可能的。 – Aleks 2013-03-23 12:46:40