对2D对象矢量进行排序

时间:2014-03-27 13:09:10

标签: c++ sorting

我正在开发一个小益智游戏(Gem Puzzle)。

我在棋盘上的每个棋子都有一个拼图棋子对象,它具有以下属性:

Position Pcorrect_;
Position Pactuel_;
bool estvide_;

(第3个属性与此问题无关)

该职位是一个简单的结构,包括:

unsigned ligne;
unsigned colonne;

每件都存储在矢量矢量中。

std::vector<std::vector<Piece>> board_;

Pieces最终混合在一起,因此正确的属性(位置)与实际属性(位置)不匹配。

我遇到了一个应该对电路板进行排序的方法。实际位置必须与每块电路板的当前位置相匹配。

使用sort函数是否有一种优雅的方法?我目前的方法是使用4个循环和许多条件,这可能是错误的方法。

1 个答案:

答案 0 :(得分:0)

如果你使用C ++ 11,你可以创建一个元组并对其进行排序。

您可以定义自定义比较,如下例所示:

http://www.hongliangjie.com/2011/10/10/sortin-tuples-in-c/