【问题标题】:Merge a number to Object's name将数字合并到对象的名称
【发布时间】:2016-04-25 13:25:04
【问题描述】:

我正在尝试做这样的事情:

int i;
Object a + to_string(i);

为了创建名称为 a1,a2,a3 的对象...

有可能吗?

【问题讨论】:

  • 名字?您需要使用预处理器:#define MYNAME(x) a##i
  • 听起来你想要一个数组或(更好)一个std::vector

标签: c++ object


【解决方案1】:

看起来你想要的是一个数组,但如果你想要尊重任何输入整数的“安全”版本,你可以这样写:

std::map<int,Object> a;
int i = /*...*/;
a[i].methodName();

如果你想在运行时动态定义变量名,那是不可能的,因为变量名只存在于编译阶段。

【讨论】:

    【解决方案2】:

    无法使用:

    int;
    Object a + to_string(i);
    

    也许使用std::map 是您正在寻找的。​​p>

    std::map<std::string, Object> theMap;
    theMap[std::string("a") + to_string(i)] = Object();
    

    【讨论】:

      猜你喜欢
      • 2018-09-13
      • 2021-06-24
      • 1970-01-01
      • 1970-01-01
      • 2019-07-16
      • 1970-01-01
      • 2019-06-26
      • 2021-10-25
      • 1970-01-01
      相关资源
      最近更新 更多