目前存在将两个向量与一个函数连接或合并的方法.
但是,似乎没有办法将一个函数连接或合并三个以上的向量.
例如,
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模板实现.
但是,我无法想象它是如何通过可变参数模板实现的.
有什么解决方案吗?
如果你可以使用范围v3,你可以简单地这样做:
std::vector<std::string> allVec = ranges::view::concat(a, b, c, d);
Run Code Online (Sandbox Code Playgroud)
您可以将它与任何矢量类型一起使用.