c++ - 计算两个集合之间的交集时出现 set_intersection 错误
问题描述
std::set<int> m{1,2, 4};
std::set<int> n{2,3, 4};
std::set<int> mn;
std::set<int>::iterator it;
it=set_intersection(m.begin(), m.end(),
n.begin(), n, end()
mn.begin()); //This part is not correct
for(int i : mn) cout<< i <<" ";
似乎使用的最后一个参数set_intersection
不正确。我尝试了inserter
or back_inserter
,但都没有成功。
解决方案
std::set_intersection(m.begin(), m.end(),
n.begin(), n.end(),
std::inserter(mn, mn.begin()));
请注意,您不能将结果分配给 astd::set<int>::iterator
因为返回类型实际上是 a insert_iterator
。
推荐阅读
- powershell - 在 Powershell 中遇到条件 if 语句的问题
- angular - Cloud Firestore - 如何使用 RXJS 对数据进行分页
- python - Django - 创建和搜索自定义用户模型
- c++ - 声明但不定义未使用的函数是否合法?
- php - 此代码是否有错误,因为它正确输出成功消息但数据库中没有任何更新
- python - KeyError: 1 问题,有什么问题?
- java - 代码完成后输出一堆零
- google-maps - 在 Private Google Access 环境中为我们限制 Google Maps API 密钥
- c# - 成功身份验证后,客户端浏览器被重定向回 ADFS 服务
- php - CRUD 中的 PHP 删除不会从数据库中删除项目