C++ 创建具有动态名称的数组
C++ Create array with dynamic name
我需要在 c++ 中创建一个数组,但我需要始终带有变量名称的数组
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'
我知道这不是蟒蛇,但也许map
帮助我?我怎么能做到这一点?
如果您希望能够通过字符串名称访问不同的数组,请考虑使用 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;
}
在此代码中,我试图尽可能接近您给出的代码 - 将向量调整为您在"Magic"函数中创建数组的大小。 但是,向量可以动态调整大小,因此您甚至可能不需要根据您的用例在代码中创建/调整它们的大小。
相关文章:
- std::向量与传递值的动态数组
- 将数组动态分配到具有指针参数的函数中
- 我可以以某种方式使我的矢量/数组动态更改装置数量吗?
- 使用 new: "potentially uninitialized pointer"将对象数组动态分配给指针
- 为什么C 没有方便的方式来为多维数组动态分配内存
- 如何制作具有动态大小的数组?动态数组的一般用法(可能还有指针)
- c++中的数组动态内存分配
- 多维数组动态分配的内存图
- 如何在 c++ 中使用 2-D 固定数组为 4-D 数组动态分配内存
- C++ 我在数组/动态内存方面遇到了一些问题
- C++ 中从数组动态强制转换
- C++中高维数组动态内存分配的正确方法.
- 从 C++ 结构中包含的指针数组动态分配和访问内存
- 对象数组动态内存分配
- 为二维数组动态分配内存时出错
- 如何将2d数组动态分配给结构
- 为结构数组c++动态分配内存
- 将数组动态添加到多维数组
- 类中的类数组-动态数组(c++)有问题
- 分配对象数组动态冻结