C ++,将副本设置为向量
我需要将
std::set
复制到std::vector
:
std::set <double> input;
input.insert(5);
input.insert(6);
std::vector <double> output;
std::copy(input.begin(), input.end(), output.begin()); //Error: Vector iterator not dereferencable
问题出在哪儿?
没有找到相关结果
已邀请:
5 个回复
目浆搽
:
不会向要插入的容器添加元素:它不能;它只有一个迭代器进入容器。因此,如果将输出迭代器直接传递给
,则必须确保它指向一个至少足以容纳输入范围的范围。
创建一个输出迭代器,在每个元素的容器上调用
,因此每个元素都插入到容器中。或者,您可以在
中创建足够数量的元素来保存要复制的范围:
或者,您可以使用
范围构造函数:
辽躺
假设您只想要v中的s内容,并且在将数据复制到v之前没有任何内容。
亲奋漏
的另一种选择:
耐扫鹤胶鞭
悸翠疮武昏
不能用于插入空容器。要做到这一点,你需要像这样使用insert_iterator: