我有这个代码:
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 中编译并运行良好。但是,在之前的问题中,人们说 aset
的迭代器应该是const
. 我在标准中没有看到类似的东西。有人可以告诉我它在哪里说的,或者这是否是明确定义的行为?
如果不是,请提供我需要的代码。有没有办法在不创建临时集的情况下做到这一点?