2014-03-27 83 views
0

我正在研究一個小的益智遊戲(寶石益智)。排序對象的2D矢量

我對每一塊電路板上,具有以下屬性的拼圖對象:

Position Pcorrect_; 
Position Pactuel_; 
bool estvide_; 

(第3屬性是不相關的這個問題)

位置被結構簡單,包括:

unsigned ligne; 
unsigned colonne; 

每件都存儲在一個向量的矢量。

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

件最終會混在一起,所以正確的屬性(位置)與實際屬性(位置)不匹配。

我被卡在一個應該對板子進行排序的方法上。實際的位置必須匹配每塊板子的當前位置。

是否有一個優雅的方式做這個與排序功能?我目前的做法是使用4循環和許多條件,這可能是做錯的方式。

+0

有一個看看'的std :: sort'功能。 –

+0

另外,如果你使用std :: sort,你可能不得不在你的Piece類中實現一個比較(<)運算符。請參閱http://stackoverflow.com/questions/1380463/sorting-a-vector-of-custom-objects –

+0

使用'std :: sort',並提供一個函數,該函數需要'std :: vector '並返回一個'bool'。然後你可以在該函數中再次使用'std :: sort'來定義你想如何比較它們。 – OMGtechy

回答