c++ - 存储不同类型的变量

标签 c++ arrays variables 2d

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

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

解决这个问题的方法是什么?

最佳答案

“相似,但略有不同”通常意味着有一个共同的基类(或者您应该创建一个)。您可以创建一个包含任何派生类型的基类指针容器。如果没有公共(public)基类,可以使用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;
}

关于c++ - 存储不同类型的变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40351248/

相关文章:

javascript - 根据部分重复项连接行

c++ - 如何检查 const char* 是否以特定字符串开头? (C++)

c++ - 非阻塞 Connect() 上的 WSAEWOULDBLOCK 错误

android - 如何使用 edittext 验证 json 数组

arrays - 在不知道位置的情况下从数组中删除(不仅仅是取消设置)多个字符串

无法找出共享变量的错误

java - 在 Java 中打印字符串变量

ruby - 如何跟踪 ruby​​、block、for、each、do 中的计数器变量

c++ - 当抽象到一个类中时,我的 OpenGL 顶点数组不再有效

c++ - 如何计算 double 组中特定范围内的值数