【问题标题】:Store different types of variables存储不同类型的变量
【发布时间】:2016-10-31 22:02:00
【问题描述】:

我正在努力寻找解决问题的方法。我在 Game Maker 中看到名为 ds_grid 的东西,它类似于动态 2D 数组,但每个字段都可以包含不同类型的变量。

您可以通过索引获取值,例如ds_grid_get(mygrid,row,column)。我需要类似的东西,但找不到任何可以工作的东西,它可以容纳不同的类型,不能是动态的,反之亦然。

解决方法是什么?

【问题讨论】:

  • 什么语言?请作为标签。
  • 对不起,我是说 C++。
  • 当问题陈述很简单时,很难提供解决方案,“它不起作用”。请edit您的问题更完整地描述您预期会发生什么以及这与实际结果有何不同。请参阅 How to Ask 以获取有关什么是好的解释的提示。

标签: c++ arrays variables 2d


【解决方案1】:

“相似,但略有不同”通常意味着有一个共同的基类(或者您应该创建一个)。您可以创建一个包含任何派生类型的基类指针容器。如果没有通用的基类,可以使用boost::variant在一个容器中存储不同的类型。

 // Example program
#include <iostream>
#include <string>
#include "boost/variant.hpp"

int main()
{
  std::vector<boost::variant< int, std::string > > w = {"as", 12};
  std::cout << w[0] <<std::endl;
  std::cout << w[1] <<std::endl;
}

【讨论】:

  • 好的,我试着理解这一点,我以前从来没有做过这样的事情:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-11-12
  • 2013-10-05
  • 1970-01-01
  • 2021-08-01
  • 2019-02-19
  • 2018-09-23
  • 1970-01-01
相关资源
最近更新 更多