次のコードをC++と潜在的にブーストライブラリを使用して1つのライナーに単純化する良い方法はありますか?基本的に、メンバー関数としてtitle()を持つメッセージのリストがあります。特定のタイトルのメッセージがリストに存在するかどうかを知りたい。
std::string title = "some title";
bool unique = true;
BOOST_FOREACH(Message& m, messages) {
if (m.title() == title) {
unique = false;
break;
}
}
C#Linqに精通している場合は、次のC++バージョンが最適です。
unique = (messages.FirstOrDefault(m => m.title() == title) == null);
残念ながら、C ++ 11は使用できませんが、C ++ 11の例がある場合は、後で参照できるようにしたいと思います。
前もって感謝します。