int main(void){
string strVar ="StringData"; //this is a string variable with text inside
cout<<strVar<<endl; //displaying the variables contents
string strVar.c_str() = "stuff in string variable 'StringData'"; //this uses what was inside of strVar to be the name of the new string variable
cout<<StringData<<endl; //prints the contents of the variable StringData (who got its name from the data inside of strVar
}
//OUTPUT:
StringData
stuff in string variable 'StringData'
我知道你绝对不能以这种方式做到这一点,在这个例子中你必须事先知道在使用变量StringData之前strVar中的内容,但我们理论上可以这样做吗?
编辑:
谢谢大家,所以我从你们这里得到的基本上是不可能的,C ++不是一个动态变量语言,而我能得到的最接近的是 map(字符串,字符串)
答案 0 :(得分:2)
没有任何明确的想法,但也许你对std::map
感兴趣?听起来像你想要的是一个Key-Value配对。
std :: Map的参考 - &gt; http://www.cplusplus.com/reference/stl/map/
示例:
#include <map>
#include <string>
#include <iostream>
using namespace std;
int main(void)
{
map<string, string> myMap;
myMap.insert(pair<string, string>("StringData", "Stuff in StringData"));
// Get our data
cout << myMap["StringData"] << endl;
return 0;
}
答案 1 :(得分:0)
变量名仅在C ++的编译时存在。你最接近的是使用带有字符串键的地图。
答案 2 :(得分:0)
我不确定你在问什么,但如果你想拥有“动态”变量名,那么你就不能直接在代码中这样做。您必须使用一些map-type数据结构。如果可以使用标准库,请查看std::hash_set
或std::map
。
答案 3 :(得分:0)
是语言,您可以在其中动态创建变量。 C ++不是其中之一;)