Foo
というオブジェクトがあり、そのメソッドはbool isChecked() const
です。私にFoo foos[]
があるとしましょう。選択したオブジェクトのインデックスを検索
私はfoos
の正確に一つの要素は、isChecked()
にtrue
を返します。他のすべてのfalse
を返すことを保証しています。
true
要素のインデックスを見つけるための巧妙なC++ 03方法を探しています。私はこれをすることができますが、それはかなり醜いです。誰か良いものがありますか?
distance(foos, find_if(foos, foos + SIZE, mem_fun_ref(&Foo::isChecked)))
#include <algorithm>
#include <functional>
#include <iostream>
#include <iterator>
using namespace std;
#define SIZE 42
class Foo{
bool checked;
public:
Foo() : checked(false) {}
void setChecked() { checked = true; }
bool isChecked() const { return checked; }
};
int main() {
Foo foos[SIZE] = {};
foos[13].setChecked();
cout << distance(foos, find_if(foos, foos + SIZE, mem_fun_ref(&Foo::isChecked))) << endl;
}
それを示すためにあまりにも多くのコードではありませんあなたの質問に直接答えてください。 –
@πάνταῥεῖええ、私はシンプルなエレガンスのために行っていましたが、あなたの権利はありません。問題のコードでそれを見るようになったので、それは単なる明確な質問です。 –