2つのオブジェクトのベクトル要素を比較し、それに応じて同じオブジェクトの他のベクトル要素を取得したいと思います。たとえば、オブジェクトにはベクトルがあります。
同じ要素を見つけて、それに応じfoo1.a=[4 2 1 3] foo2.a=[2 1 4]
て他のベクトルの包含を取得したいと思います。ループ内の2つのベクトルを比較して同じものを取得しようとしましたが、失敗しました。 foo1.b=[8 8 2 10]
foo2.b=[8 2 8]
foo.a
質問する
2457 次
1 に答える
4
与えられた 2 つのベクトル:
std::vector<int> v1; // {4, 2, 1, 3};
std::vector<int> v2; // {2, 1, 4};
まず、sort
共通要素を見つけやすいように 2 つのベクトルを示します。
std::sort(v1); // {1, 2, 3, 4}
std::sort(v2); // {1, 2, 4}
set_intersection
共通要素を見つけるために使用します。
std::vector<int> vi;
std::set_intersection(v1.begin(), v1.end(), v2.begin(), v2.end(), vi.begin()); // {1, 2, 4}
set_difference
一意の要素を見つけるために使用します。
std::vector<int> vd;
std::set_difference(v1.begin(), v1.end(), v2.begin(), v2.end(), vd.begin()); // {3}
于 2013-02-15T07:50:22.010 に答える