当前存在用一个函数连接或合并两个向量的方式。
但是,似乎没有办法将三个以上的向量与一个函数连接或合并。
比如说,
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来实现。
但是,我无法想象它是如何通过variadic模板来实现的。
有什么解决的办法吗?
4条答案
按热度按时间nhn9ugyo1#
如果可以使用range v3,则只需执行以下操作:
字符串
请参见demo here。
您可以将其用于任何向量类型。
70gysomp2#
以下是
variadic templates
的解决方案字符串
你只需要添加你的向量:
型
svmlkihl3#
试试这样的东西:
字符串
型
Live Demo
或者:
型
型
Live Demo的
uidvcgyl4#
另一个可能的解决方案。@miradham. reserve提出的解决方案的变体是自动化的,它将任何标准容器连接到一个std::vector中。
字符串