首页 > 解决方案 > 使用复制算法从向量复制到集合

问题描述

作为一种纯粹的学习体验,我希望能够使用该copy算法从一个向量复制到一个集合。这就是我想要做的:

vector<int> myVector = {0, 1, 1, 2, 2, 3, 3, 4, 5, 6};
    
// set<int> mySet(myVector.begin(), myVector.end());
// This works, no issues
    
set<int> mySet;
copy(myVector.begin(), myVector.end(), some_inserter_that_will_work(mySet));

在网络上的某个地方,有人建议该inserter函数可以工作,但它给了我以下编译错误:

错误:没有匹配的函数调用'inserter(std::set&)'</p>

标签: c++stl

解决方案


您需要以std::inserter这种方式使用,将插入位置指示为第二个参数:

copy(myVector.begin(), myVector.end(), inserter(mySet, mySet.end()));

推荐阅读