双序列,利用集合将元素不重复放入序列b

#include <iostream>
#include <set>
#include <vector>
using namespace std;

int main() {
    int T = 0;
    cin >> T;
    while (T--)
    {
        int n = 0;
        cin >> n;
        vector<int> arr;//序列a
        vector<int> brr;//序列b
        set<int> is_exist; //验证存在的集合
        //遍历输入,同时将所有元素放入存在验证集合
        for (int i = 0; i < n; i++) 
        {
            int a = 0;
            cin >> a;
            arr.emplace_back(a);
            //如果集合中没有
            if (!is_exist.count(a)) 
            {
                //计入集合
                is_exist.insert(a);
            } 
        }
        //遍历,将不同的元素塞入序列b
        for (int i = 0;i < n; i++)
        {
            //如果arr[i]在is_exist中存在(说明之前已经出现过),那么我们将arr[i]加入brr,并且从is_exist中删除arr[i]。
            if (is_exist.count(arr[i])) 
            {
                brr.push_back(arr[i]);
                is_exist.erase(arr[i]); // 确保每个重复元素只加一次
            }
        }
        //遍历输出
        for (int i = 0; i < brr.size(); i++) 
        {
            cout << brr[i];
            if (i != brr.size() - 1) 
            {
                cout << " ";
            }
        }
        cout << "\n";
    }
    return 0;
}