我想创建一个简单的二维数组或向量的SFML的Sprite对象。我尝试了很多不同的方法,最终总是得到错误或者只是一个空的向量。C++ unique_ptr对象的2d数组?
我已经试过
// first x
for (int c = 0; c < w ; ++c)
{
vector<unique_ptr<sf::Sprite>> col;
map.push_back(std::move(col));
// then y
for (int r = 0; r < h ; ++r) {
map[c].push_back(unique_ptr<sf::Sprite>(new sf::Sprite()));
}
}
和
unique_ptr<sf::Sprite[0][0]> map;
...
map.reset(unique_ptr<sf::Sprite[0][0]>(new sf::Sprite[w][h]));
总体来说,我只是没有成功地制作2D智能指针对象数组,并想知道,如果有人可以帮助。对不起,如果我没有包含足够的细节,这是我的第一篇文章,堆栈溢出,所以请温柔:)
编辑:让我给一些更详细的,对不起。所以我在一个基本上是单身的工厂类的类中创建了这个2d数组。所以我需要这个二维数组在创建后离开堆栈等等。
然后将其作为[静态]成员变量或在名称空间中定义它。 – 2013-04-22 02:25:06
注意:您不应该创建精灵的二维数组。你应该创建一个'width * height'长度的精灵的一维数组,你可以像2D数组那样访问。 – 2013-04-22 04:52:12