Set
のオブジェクトがあれば、私はすべての(順序のない)ペアを歩きたい。セットのすべてのペアを効率的に取得する方法は?
例:セット= {1,2,3}、ペア:(1,2)、(1,3)、(2,3)。
Vector<Integer>
を扱う場合、1は、各要素のインデックスの助けを借りてこれを達成することができますSet<Integer>
で
for (int i = 0; i < vector.size(); i++)
for (int j = i + 1; j < vector.size(); j++)
// Do something with vector.get(i) and vector.get(j)
しかし要素にはインデックスを持っていません。
私が今までに見つけた最良の解決策は、Set
をVector
に変換し、上記のソリューションを使用することです。
効率的な/直接的なソリューションはありますか? = n (n -1)/2
このアルゴリズムの複雑さの点で
ネストされたループでは、ベクトル/配列のみが必要です。しかしそれ以外に、私はこれが最善の解決策だと思う。 – Jochen
ベクトル?なぜリストではないのですか? –
@Jochen私はListが好む解決法だと思う。 –