注文したオブジェクトのコレクションを格納するためにマルチセットを使用していますが、注文基準を確立するためにオペレータ<を使用していますが、マルチセット印刷を繰り返して、STLマルチセットの設定の挿入順序C++
class CellSearch
{
public:
bool operator<(const CellSearch & C) const;
int getF() const { return _G + _H; }
private:
int _G;
int _H;
}
...
bool CellSearch::operator< (const CellSearch& C) const
{
return (this->getF() < C.getF());
}
私は多重集合を宣言する方法を:私はここに私のコードを簡素化しようと...私は本当にこの問題で封鎖されています....それらはすべてで注文されていないことを
を見ることができますは:
std::multiset<CellSearch*> myOpenList;
と私は、新しい要素をこのように挿入します。
....
CellSearch *actualSearch = new CellSearch(start);
addOpenList(actualSearch, myOpenList);
そして、ここでは、関数である:
void Grid::addOpenList(CellSearch* actual, std::multiset<CellSearch*>& openList)
{
openList.insert(actual);
}
多重集合を使用して私の最初の時間が...実際にはベクトルではありません、私の第一の容器です:)あなたは何かここで間違って見ることができますか?
私は、コードをまとめてみました、私はあまりないと思い...
はアドバイスをありがとうございました!! :)とにかく、オブジェクトを比較するためにポインタを逆参照する方法を例に挙げてください。 – Breikdans
@Breikdans - 完了しましたが、私はそれに対して本当に助言します。 – SergeyA
ありがとうございます!私はポインタを格納しないという選択肢を検討しますが、mwがそれを逆参照ポインターと比較する方法も学ぶのは非常に面白かったです:) – Breikdans