Smi*_*yne 3 c++ stl vector set
我想在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);
Run Code Online (Sandbox Code Playgroud)
我想创建一个set1包含项目的列表,
apple,
banana,
orange
Run Code Online (Sandbox Code Playgroud)
和set2项目,
+apple
+graphes
Run Code Online (Sandbox Code Playgroud)
Bot*_*tje 15
您可以使用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; }))
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
62 次 |
| 最近记录: |