如何将 unordered_set 存储到向量中?

How to store unordered_set to a vector?

我想用一个向量存储几个unordered_set。

这是我的测试代码:

#include <unordered_set>
#include <vector>
using namespace std;

int main(){
    vector<unordered_set<int>> v1;
    unordered_set<int> s1 = {1,2}, s2 = {3,2};
    v1[0] = s1;
    v1[1] = s2;
    for (auto &s : v1[0]) {
        cout << s << " ";
    }
}

然后我得到 Segmentation fault (core dumped) .

我的问题是:我应该如何修改我的代码?

您的代码的问题在于您的向量没有元素 0 和 1。使用所需数量的元素初始化向量,或将元素插入空向量,如下所示:

int main(){
        vector<unordered_set<int>> v1;
        unordered_set<int> s1 = {1,2}, s2 = {3,2};
        v1.push_back(s1);
        v1.push_back(s2);
        for (auto &s : v1[0]) {
            cout << s << " ";
        }
    }