C++ 使用外部参数分配具有'compound names'变量

C++ Assigning variables with 'compound names' using an external argument

本文关键字:compound 变量 names 外部 参数 分配 C++      更新时间:2023-10-16

我试图读取.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的实现,您可以使用。