我正在尝试找到解决我的问题的方法。我在 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/