<分区>
我有一个可变数量的std::vectors<int>
,假设我在这个例子中有 3 个 vector :
std::vector<int> vect1 {1,2,3,4,5};
std::vector<int> vect2 {1,2,3,4,5};
std::vector<int> vect3 {1,2,3,4,5};
vector 的值在这里并不重要。此外,这些 vector 的长度是可变的。
从这些 vector 中,我想创建 vector 值的每个排列,所以:
{1, 1, 1}
{1, 1, 2}
{1, 1, 3}
...
...
...
{3, 5, 5}
{4, 5, 5}
{5, 5, 5}
然后我会将每个组合插入到键值对映射中,以供我的应用程序进一步使用。
实现此目标的有效方法是什么?我通常只使用 for
循环,遍历所有参数以创建所有组合,但 vector 的数量是可变的。
谢谢。
编辑:我将包含更多细节。
所以,首先,我并不是真的在处理 int
s,而是一个自定义对象。 int
s 只是为了简单起见。 vector 本身存在于这样的 map 中 std::map<std::string, std::vector<int> >
.
我的最终目标是拥有一个 std::vector< std::map< std::string, int > >
,它本质上是名称-值对的所有可能组合的集合。