所以我们有set<string> a
和set<string> b
,我们想要std::set<string> c
包含代表a - b
的项目(意味着a
剩下的内容如果我们从b
中移除所有项目,如果b
包含的内容超过a
或a
中不存在的内容,我们希望保留类似数字的简单数学: 5-6 = 0
时3-2 = 1
}
答案 0 :(得分:11)
我认为您希望来自std::set_difference()
的{{1}}。
<algorithm>
答案 1 :(得分:3)
答案 2 :(得分:1)
我认为这应该有用。
for( set<string> :: iterator it = a.begin(); it != a.end(); ++it )
{
set<string>:: iterator iter = find( b.begin(), b.end(), *it );
if( iter == b.end() )
{ // ^^^^^^^ Note: find returns b.end() if it does not find anything.
c.insert(*iter)
}
}