C++ 使用外部参数分配具有'compound names'变量
C++ Assigning variables with 'compound names' using an external argument
我试图读取.pdb文件,因此我在代码中结束了很多变量。为了减少它们(并避免分割错误),我想知道我是否可以在我的代码中使用外部参数分配数组名称。
我的代码foo.cpp的起始位看起来像这样-
/*All the relevant headers*/
using namespace std ;
int main(int argc, char *argv[])
{
ifstream input(argv[1],ios::out) ;
string first(argv[2]) ;
string second(argv[3]) ;
string "first"ATOM[1000] ;
string "second"ATOM[1000] ;
}
我希望如果我启动程序作为。/foo.exe输入C O,我想要两个名为CATOM和OATOM的数组被初始化。
如果没有第二个参数,则不应该定义OATOM数组。
这将省去我必须创建多个数组的麻烦,如NATOM[1000], OATOM[1000]等,因为我可以在程序中定义它们。
这可能吗?对于每个'O', 'C', 'N'等,需要大约8-10个长字符串数组,这会导致它爆炸。
我是编程新手,我希望这个问题有意义。提前感谢!
我建议创建一个结构与数组和字符串变量包含该数组的名称,然后你只是通过名称搜索结构。
一个更优雅的解决方案是使用std::map,就像@NathanOliver建议的那样。据我所知,在c++中,运行时更改变量名是不可能的(或逻辑上的)。不能在运行时更改或设置变量名。
然而,map(也称为dictionary或关联数组)是一种数据结构,它允许您将键对象(如字符串)与值对象(如数组)相关联,并且它可能适合您的需要。在标准库中有map的实现,您可以使用。
相关文章:
- 如何创建一个CMake变量,除非显式重写,否则使用默认值
- 将成员变量添加到共享库中的类中,不会破坏二进制兼容性吗
- 将数组的地址分配给变量并删除
- 为"adjacent"变量赋值时出现问题
- enum是C++中的宏变量还是整数变量
- 在全局变量中保存类的实例以重新创建类(创建"backup")
- 用C++中的一个变量定义一个常量
- 具有奇怪重复模板模式的派生类中的成员变量已损坏
- 你能重载对象变量名本身返回的内容吗
- 内置函数可查看CPP中的成员变量
- 是否可以初始化不可复制类型的成员变量(或基类)
- 尝试通过多个向量访问变量时,向量下标超出范围
- 试图让变量检查数组中的某些内容
- Cpp-Tuple使用带有变量的get
- 将包含C样式数组的对象初始化为成员变量(C++)
- 当vector是tje全局变量时,c++中vector的内存管理
- 通过多个头文件使用常量变量
- std::threads可以从Windows DLL中的全局变量创建/销毁吗?
- 执行函数时导致崩溃的变量
- C++ 使用外部参数分配具有'compound names'变量