我有这段代码:
set<int>::iterator new_end =
set_difference(set1.begin(), set1.end(),
set2.begin(), set2.end(),
set1.begin());
set1.erase(new_end, set1.end);
它在Visual Studio中编译和运行得很好。然而,在之前的问题中,人们表示
set
的迭代器应该是const
。我没有在标准中看到这样的说明。有人能告诉我在哪里可以找到这个说明,或者这是否是明确定义的行为吗?如果不是,请提供满足我的需求的代码。有没有一种方法可以在不创建临时
set
的情况下实现这一点?