如何在 C++ 中合并两个向量?

Nee*_*tel 0 c++ merge vector

我有三个向量。v1、v2、v3。

sort(v1.begin(),v1.end());
sort(v2.begin(),v2.end());
merge(v1.begin(),v1.end(),v2.begin(),v2.end(),v3.begin()); 
Run Code Online (Sandbox Code Playgroud)

现在,在对 v1 和 v2 进行排序后,我想将它们合并到 v3 中。这是我写的,但它出现了分段错误。无法弄清楚为什么。(如果有人编写解决方案,请解释为什么它有效以及为什么我的解决方案不起作用)。我从C++ 文档中获取了帮助。我有什么遗漏的吗?

Nee*_*tel 5

终于从 schorsch_76 的评论中找到了答案:)。

sort(v1.begin(),v1.end());
sort(v2.begin(),v2.end());
merge(v1.begin(),v1.end(),v2.begin(),v2.end(),back_inserter(v3)); // change here
Run Code Online (Sandbox Code Playgroud)

只需使用back_inserter(vector_name), 而不是vector.begin()...

在合并 v3 中的两个向量(v1 和 v2)之前,我们需要确保 v3 有足够的大小来存储这两个向量。