在c++中,怎么将vector中的元素插入到set中

怎么将vector中的元素插入到set中,程序怎么写

stl算法中有个copy函数可以实现从vector中插入set中。
具体实现如下:

#include<iostream>
#include<vector>
#include<set>
int main()
{
std::set <double> input;
input.insert(5);
input.insert(6);

std::vector <double> output;
std::copy(input.begin(), input.end(), output.begin());
return 0;
}
优化后的方法如下:
back_inserter 是iterator适配器,它使得元素被插入到作为实参的某种容器的尾部#include<iostream>
#include<vector>
#include<set>
#include<iterator>
int main()
{
std::set <double> input;
input.insert(5);
input.insert(6);

std::vector <double> output;
std::copy(input.begin(), input.end(), std::back_inserter(output));
std::cout << output.size() << std::endl;
return 0;
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-06-13
vector<int> v;
set<int> s;
v.push_back(1);
v.push_back(3);
.........
s.insert(v.begin(),v.end());追问

set里的元素应该怎么输出?

追答

set::iterator sb=s.begin(),se=s.end()
for(;sb!=se;++sb)
{
printf("%d",*sb)
}

本回答被提问者和网友采纳
相似回答