私はクラスオブジェクトのベクトルを整数インデックスでソートしています。しかし、オブジェクトのインデックスはクラスのメンバ関数によって生成されるので、メンバ変数としてint id
は格納されません。binary_searchは、そのメンバ関数の戻り変数でクラスオブジェクトを見つける[C++]
class boundary
{
public:
int get_id();
}
std::vector<boundary> sample;
は今、私はint id
get_id()
によって生成されていますboundary
オブジェクトを、見つける必要があり、私が探してるint value
と同じです。
auto &iter = binary_search(sample.begin(),sample.end(), 5, custom_function)
//should compare iter.get_id() == 5
この場合、binary_searchを使用できますか?これをどのように達成するのですか?
idは 'get_id'機能によって生成され、フィールドに格納しない場合、私はあなたが得るいずれかのことをかなり確信していますどちらの場合でも、関数を呼び出すときにすべてのオブジェクトに対して同じ 'id'が返されます。あるいは、オブジェクトに対して多数の可能なIDを取得する場合、バイナリ検索は実用的ではありません。 –
サンプル(ベクトル)には、探しているオブジェクトが含まれていない可能性があることを覚えておいてください。その場合、あなたの関数は何を返すのですか? – Andrzej
@Andrzej、私が探しているオブジェクトは、ベクトルの中になければなりません。私はそれを主張する必要があります – hisham