我想将两个集合(向量)合并成一个包含重复元素的所有元素。打印所有可能的组合,包括重复,顺序也很重要
例如:
组A = “ABC” 和组B具有 “12345” 我的输出需要看起来像这样:
{(a,1)(b,1)(c,1)}
{(a,1)(b,1)(c,2)}
{(a,1)(b,1)(c,3)}
{(a,1)(b,1)(c,4)}
{(a,1)(b,1)(c,5)}
{(a,1)(b,2)(c,1)}
{(a,1)(b,2)(c,2)}
{(a,1)(b,2)(c,3)}
{(a,1)(b,2)(c,4)}
{(a,1)(b,2)(c,5)}
{(a,1)(b,3)(c,1)}
{(a,1)(b,3)(c,2)}
.................
{(a,5)(b,3)(c,5)}
{(a,5)(b,4)(c,1)}
{(a,5)(b,4)(c,2)}
{(a,5)(b,4)(c,3)}
{(a,5)(b,4)(c,4)}
{(a,5)(b,4)(c,5)}
{(a,5)(b,5)(c,1)}
{(a,5)(b,5)(c,2)}
{(a,5)(b,5)(c,3)}
{(a,5)(b,5)(c,4)}
{(a,5)(b,5)(c,5)}
所有125件(5 * 5 * 5)
我试图与for循环
for (size_t i = 0; i < v_setB.size(); i++)
{
for (size_t k = 0; k < v_setB.size(); k++)
{
for (size_t n = 0; n < v_setB.size(); n++)
{
stringstream temp;
temp << "{(" << v_setA[0] << "," << v_setB[i] << ")(" << v_setA[1] << "," << v_setB[k] << ")(" << v_setA[2] << "," << v_setB[n] << ")}";
v_SavedElem.push_back(temp.str());
}
}
}
,但如果要做到这一点在第一组元素#增长,那么它不会工作。有人可以帮助创建递归功能吗?
你对矢量迭代器感到满意吗?该解决方案可以或不可以使用,但他们是一个很好的习惯。 – Beta
当你说在第一组中有更多元素时,解决方案“不起作用” - 你是什么意思?我有一个非常强烈的怀疑,递归不是你的问题的答案。 – YePhIcK
你能告诉我在哪里看,或者如果可能的话显示一些代码 – user117911