【发布时间】:2018-06-22 13:17:27
【问题描述】:
为什么没有从myset 中减去第二组? myset.insert(second.begin(),second.end()) 按预期工作。
// erasing from set
int main ()
{
std::set<int> myset;
std::set<int> second;
std::set<int>::iterator it;
// insert some values:
for (int i=1; i<10; i++) myset.insert(i*10); // 10 20 30 40 50 60 70 80 90
for (int i=3; i<5; i++) second.insert(i*10);
myset.erase(second.begin(), second.end()); // Why is the second set not subtracted from myset? myset.insert(second.begin(),second.end()) works as intended.
std::cout << "myset contains:";
for (it=myset.begin(); it!=myset.end(); ++it)
std::cout << ' ' << *it;
std::cout << '\n';
return 0;
}
【问题讨论】:
-
你得到了什么输出。你想得到什么不同的东西?
-
@Cornstalks 我的回答与您的评论无关......伟大的思想链接一样。
-
@Cornstalks :感谢您帮助我了解限制。
-
有趣——我从来没有从这个角度考虑过这些方法。