我正在努力寻找解决问题的方法。我在Game Maker中看到一个名为ds_grid
的东西,它类似于动态2D数组,但每个字段都可以包含不同类型的变量。
您可以按索引获取值,例如ds_grid_get(mygrid,row,column)
。我需要类似的东西,但却无法找到任何可以保持不同类型的东西,但它们不是动态的,反之亦然。
这是什么解决方法?
答案 0 :(得分:0)
“类似,但有些不同”,这意味着有一个共同的基类(或者你应该创建一个基类)。您可以创建一个基类指针容器,它可以容纳任何派生类型。如果没有公共基类,则可以使用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;
}