c++ - 有没有办法简单地连接多个 vector ?

标签 c++ stl

目前存在用一个函数连接或合并两个 vector 的方法。

但是,似乎没有办法用一个函数连接或合并三个以上的 vector 。

例如,

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);

如果没有的话,好像可以用variadic template来实现。

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

有什么解决办法吗?

最佳答案

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

std::vector<std::string> allVec = ranges::view::concat(a, b, c, d);

参见 demo here .

您可以将其用于任何 vector 类型。

关于c++ - 有没有办法简单地连接多个 vector ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54229010/

相关文章:

c++ - C++ 是否提供与 pair<T1, T2> 相当的 "triple"模板?

c++ - STL 排序不需要严格的弱排序才能工作吗?

c++ - 如何在 V4 打印机驱动程序中设置输出文件的固定目录

C++ Hermite多项式实现

c++ - protected 成员与重载运算符冲突

c++ - 创建一个不可复制的 STL 迭代器是个好主意吗?

c++ - 迭代 vector 和其他 STL 容器的样式之间的区别

c++ - 下面的字符串循环缓冲区实现有哪些可能的改进?

c++ - 使用 MAPI 的文件附件的 Unicode 文件名

c++ - C++中的浮点格式