ソートされたベクトルと別のソートされたベクトルのインプレース結合を行うための効率的な方法が欲しいです。インプレースとは、一時的であっても、アルゴリズムがユニオンを格納するためのまったく新しいベクトルやその他のストレージを作成してはならないことを意味します。代わりに、最初のベクトルは、新しい要素の数だけ単純に増加する必要があります。
何かのようなもの:
void inplace_union(vector & A, const vector & B);
その後、AにはAユニオンB のすべての要素が含まれ、並べ替えられます。
std::set_union
inは、 A<algorithm>
である宛先を上書きするため、機能しません。
また、これは 2 つのベクトルを 1 回通過するだけで実行できますか?
編集: AとB の両方にある要素は、 Aに 1 回だけ出現する必要があります。