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

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

stl算法中有个copy函数可以实现从vector中插入set中。
具体实现如下:
#include<iostream>
#include<vector>
#include<set>
int main()
{
std::set <double> input;
inputinsert(5);
inputinsert(6);
std::vector <double> output;
std::copy(inputbegin(), inputend(), outputbegin());
return 0;
}
优化后的方法如下:
back_inserter 是iterator适配器,它使得元素被插入到作为实参的某种容器的尾部#include<iostream>
#include<vector>
#include<set>
#include<iterator>
int main()
{
std::set <double> input;
inputinsert(5);
inputinsert(6);
std::vector <double> output;
std::copy(inputbegin(), inputend(), std::back_inserter(output));
std::cout << outputsize() << std::endl;
return 0;
}

成员函数push_back()
如果要插在中间,只能自己做了。因为这种 *** 作是低效的,所以标准库并不直接支持。方法就是先resize(),然后把下标大于i的每个元素往后移(复制),然后把要插入的元素复制到下标i上。
另外,如果要是总要在中间插入,而使用下标又不多的话,就应该考虑用list而不是vector。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/13387989.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-07-26
下一篇 2023-07-26

发表评论

登录后才能评论

评论列表(0条)

保存