如何有效地将元素从集合移动到向量?

时间:2017-01-10 19:12:56

标签: c++11 vector set

我有一个std::set<vector<int>>,我希望将其移动(不复制)到std::vector<vector<int>>。我该怎么做?

我尝试使用move(我用来在向量之间移动)和下面的代码但是它不会编译。

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

int main(){
    set<vector<int>> res;
    vector<int> first = {1,2,3};
    vector<int> second = {4,5,6};
    res.insert(first);
    res.insert(second);
    vector<vector<int>> ans;
    for(auto i : res){
        ans.emplace_back(ans.end(),move(i));
    }
    return 0;
}

1 个答案:

答案 0 :(得分:1)

set<T>不包含T个;它包含const T个。因此,无法简单地将对象移出它。