2 つの異なるタイプのセットで std::set_intersection を実行する方法はありますか?
私は2つのセットを持っています:
std::set<X1> l_set1;
std::set<X2> l_set2;
X1 と X2 が等しいかどうかをチェックするコンパレータを定義できます。
struct sample_comparer
{
bool operator()(const &X1 p_left, const &X2 p_right)
{
return p_left == p_right;
}
};
ここで、これら 2 つのセットでセットの交差を試みます。
std::set<X1> l_intersect;
std::set_intersection(l_set1.begin(), l_set1.end(), l_set2.begin(), l_set2.end(),
std::inserter(l_intersect, l_intersect.begin()), sample_comparer());
残念ながら、このコードを機能させることはできません。これが可能かどうかさえわかりませんが、set_intersection の説明から、 2 つの異なる反復子を使用できることがわかります。
目的のコード サンプルを検索しようとしましたが、見つかりませんでした。誰かが私の問題の実際のコード サンプルを提示してくれませんか?
更新: エラーは次のとおりです。
エラー: stl_function.h:227: '__x < __y' の 'operator<' に一致しません
前もって感謝します!