セットはランダムアクセスイテレータをサポートしていません。あなたがオブジェクトを比較するために、他の方法をしたい場合は、
1)第一の方法
bool compareFunciton(const setElementClass& lhs,const setElementClass& rhs)
{
//return true if lhs's key is smaller than rhs and false at other case
}
set<setElementClass,compareFunction> someSet;
2)次の操作を行う必要があります(演算子<を使用しません)それとも、この
のように機能するのではなく、機能クラスを使用することができます
class compareClass
{
public:
bool opreator()const setElementClass& lhs,const setElementClass& rhs)
{
//return true if lhs's key is smaller than rhs and false at other case
}
};
compaerClass comp;
set<setElementClass,comp> someSet;
また、機能ヘッダーを確認する必要があります。そこには、あなたがfeautureで使用できるいくつかの機能クラスがあります。あなたはすでに気づいて、std::set<>::find
メンバ関数は期待し(std::set
にvalue_type
に同じである、)const key_type &
:http://www.cplusplus.com/reference/std/functional/
コンパレータを独自のクラス用に作成し、そのコンパレータを使用する必要があります。 – DumbCoder
'std :: set'はランダムアクセスを提供しません。 – dalle
達成しようとしていることに関する詳細情報を提供する必要があります。あなたがしようとしていることに応じて、操作の最後にコンテンツを並べ替えるほうが効率的です。詳細情報が必要です。 –