如何组合std :: set中的元素对?

时间:2010-05-28 11:06:08

标签: c++ set combinatorics

我有一个来自“一个”,“两个”和“三个”的set<string>

如何从中获取所有配对?

  • 一 - 二
  • 一 - 三
  • 二 - 三

1 个答案:

答案 0 :(得分:4)

使用两级循环:

// Loop over all members.
for (set<string>::iterator j = s.begin(); j != s.end(); ++j)
{
    // Loop over all members up to, but excluding, the current outer-loop member.
    for (set<string>::iterator i = s.begin(); i != j; ++i)
    {
        do_something_with(*i, *j);
    }
}