私はセットのベクトルを定義し、セットのcompare関数を定義したいと思う。setがvectorの要素であるときにset compare関数を定義する
私はこのように、セットの比較関数を定義する方法を知っている:
bool isSmall(const std::pair<int, int> &i1, const std::pair<int, int> &i2)
{
return i1.second < i2.second;
}
std::set<std::pair<int, int>, decltype(isSmall)*> set_int(isSmall);
しかし、どのような場合、私はベクトルを持っている、とベクトル要素は私の自己定義された一連のですか?
std::vector< std::set<std::pair<int, int>, decltype(isSmall)*> > vec_set
Iはvec_setを挿入するので、これは< 1,1のような[0]別の同じ要素、corretない>(< 1,1>はvec_setに挿入されている[0])プログラムは、その後、ダウンクラッシュ。
私はset_int(isSmall)のようなことをする必要があるようですが、上記のようにこのセットを含むベクトルを定義するとどうすればいいですか?
あなたは何を達成しようとしていますか? – Zereges
あなたが見ることができるように、私はベクトルを持っています、そして、このベクトルの要素は私の自己定義セットです、その要素のペアはです。私が独自の比較関数を定義しなければならないので、デフォルトのランクルールはセットの両方のint番号に基づいてセットをランク付けするため、セットの要素のランクをの第2のint番号に従って設定したいと考えています。セットを定義するときにこのcompare関数を使用してください。 –
Yan
と私は今それをやる方法を知っています、ちょうどQwabbelbellyが言うように。 – Yan