有没有办法简单地连接多个向量?

sun*_*cho 4 c++ stl

目前存在将两个向量与一个函数连接或合并的方法.

但是,似乎没有办法将一个函数连接或合并三个以上的向量.

例如,

vector<string> a = {"a", "b"};
vector<string> b = {"c", "d"};
vector<string> c = {"e", "f"};
vector<string> d = {"g", "h"};

// newVector has to include {"a", "b", "c", "d", "e", "f", "g", "h"}
vector<string> newVector = function(a, b, c, d);
Run Code Online (Sandbox Code Playgroud)

如果没有,似乎可以使用variadic模板实现.

但是,我无法想象它是如何通过可变参数模板实现的.

有什么解决方案吗?

P.W*_*P.W 5

如果你可以使用范围v3,你可以简单地这样做:

std::vector<std::string> allVec = ranges::view::concat(a, b, c, d);
Run Code Online (Sandbox Code Playgroud)

在这里演示.

您可以将它与任何矢量类型一起使用.