我需要一个c ++中的create数组,但我需要数组总是带有变量名
export PATH="/usr/local/bin:/usr/local/sbin:~/bin:$PATH"
我有这个错误:
int Magic(string name_array,int n)
{
string Name = "Something";
Name.append(name_array);
double * Name = new double[n];
}
int main()
{
Magic("a.txt",10);
}
我知道它不是蟒蛇,但也许是operator' : 'identifier1' differs in levels of indirection from 'identifier2'
帮助我?我怎么能做到这一点?
答案 0 :(得分:4)
如果您希望能够通过字符串名称访问不同的数组,请考虑使用std::map<std::string, std::vector<double>>
。这将字符串映射到C ++对数组的更好,更动态的答案。在这种情况下,您的代码将类似于:
#include <iostream>
#include <map>
#include <vector>
void AddVector(std::map<std::string, std::vector<double>> &io_map,
const std::string& i_name,
const std::size_t i_size)
{
io_map[i_name].resize(i_size);
}
int main()
{
std::map<std::string, std::vector<double>> vector_map;
AddVector(vector_map, "Vector1", 3);
AddVector(vector_map, "Vector2", 10);
std::cout << "Vector with string key Vector1 has size: " << vector_map["Vector1"].size() << std::endl;
return 0;
}
在这段代码中,我试图尽可能接近你给出的代码 - 将矢量调整到你在&#34; Magic&#34;中创建数组的大小。功能。但是,矢量可以动态调整大小,因此根据您的使用情况,您甚至可能不需要在代码中创建/调整它们。