メンバー関数を持つ型があるとします。
class Thing {
std::string m_name;
public:
std::string & getName() {
return m_name;
}
};
そして、私がそのタイプのコレクションを持っていると言います:
std::vector<Thing> things;
そして、名前順に整理したいと思います。これを行うには、std :: lower_boundを使用して、どこに配置するかを判断します。
bool thingLessThan(Thing const& thing, std::string const& name) {
return thing.getName() < name;
}
void addThing(std::string const& name) {
vector<Thing>::iterator position = lower_bound(
things.begin(), things.end(),
name,
thingLessThan);
if (position == things.end() || position->getName() != name) {
position = things.insert(position, Thing());
position->getName() = name;
}
}
thingLessThan
おそらくstd::mem_fun、std :: lessなどを使用して、実際に関数を作成せずに関数と同じことを行う方法はありますか?