假设我们在C ++ 11中给出了两个集合,它们具有不同的元素,并且它始终认为第一个集合的元素比第二个集合要小。
为了更清楚,我们想要合并两个集合,然后在这个集合上执行两个指针技术。但我认为也可以在不将这些集合合为一的情况下对其进行编码。
理论上这很容易,但我不知道如何在代码中编写它。问题是指针将在第一组中开始,但是当它变大时,第一组的大小应该在第二组中移动。能否请你给我一些提示如何做到这一点。提前谢谢。
答案 0 :(得分:1)
一种方法是检查指针是否已到达第一组的末尾,然后将其指向第二组。
std::set<T> a, b;
std::set<T>::iterator p = a.begin();
while (p != b.end())
{
// do something
if (++p == a.end()) p = b.begin();
}