c++ - 插入要设置的向量项
问题描述
我想在 C++ 中将字符串项插入vector
到字符串中。set
如果向量的项目包含'+'
,则应将其添加到一个集合中,否则应将其添加到另一个集合中。我可以通过一个一个地迭代向量来做到这一点。但是我可以通过 ' callback
' 的 ' ' 的 ' ' 的功能来insert
做到这一点set
吗?
struct compare {
bool operator() (const std::string& str) const{
if(str.find("+") != std::string::npos) {
return false;
return true;
}
};
std::vector strlist = {"apple","+apple","banana","orange","+graphes"};
std::set<std::string,compare> set1,set2;
set1.insert(strlist.begin(),strlist.end(),compare);
我想创建一个set1
包含项目的列表,
apple,
banana,
orange
以及set2
以下项目,
+apple
+graphes
解决方案
您可以std::partition_copy
按如下方式使用:
std::partition_copy(strlist.begin(), strlist.end(),
std::inserter(set1, set1.end()),
std::inserter(set2, set2.end()),
[](const std::string& str) { return str.find("+") != std::string::npos; }))
推荐阅读
- javascript - 如何在 Node.JS 中使用 MongoDB 批量插入插入一个大数组?
- c# - 通过工作人员发布到 .net 核心中的 API 发送多个 appsettings.json 值的简单方法?
- python - 如何访问 DataFrame 列中的元素
- swiftui - SwiftUI - 监听位置权限的授权状态
- c# - C# 如何使用 GetMethod 查找具有通用输出参数的特定重载?
- c++ - 在 C++ 中从类外部修改类的成员
- python - Pandas 按月和年分组(日期为 datetime64[ns])并按计数汇总
- c++ - 子线程中的条件变量等待在主线程中停止执行
- methods - 打开购物车。西班牙的信用卡支付平台
- java - Kotlin 中的小数相乘