我想將兩個集合(向量)合併成一個包含重複元素的所有元素。打印所有可能的組合,包括重複,順序也很重要
例如:
組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