【问题标题】:Using copy algorithm to copy from vector to set [duplicate]使用复制算法从向量复制到集合[重复]
【发布时间】:2021-11-23 01:35:05
【问题描述】:

作为纯粹的学习体验,我希望能够使用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&)'

【问题讨论】:

  • 错误提示您使用 inserter 错误。它有两个参数。
  • 可能与此处相关。你知道你可以直接从向量初始化一个集合,对吧?像这样:std::set&lt;int&gt; set(vec.begin(), vec.end());

标签: c++ stl


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 2011-06-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-31
    • 2012-05-06
    • 1970-01-01
    • 2016-07-08
    相关资源
    最近更新 更多