gpt4 book ai didi

c++ - 插入要设置的 vector 项

转载 作者:太空狗 更新时间:2023-10-29 19:40:10 24 4
gpt4 key购买 nike

我想在 C++ 中将 vector 字符串项插入到 set 字符串中。如果 vector 的项包含'+',则应将其添加到一组,否则应将其添加到另一组。我可以通过一个一个地迭代 vector 来做到这一点。但是我可以通过“set”的“insert”函数的“callback”函数来做到这一点吗?

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; }))

关于c++ - 插入要设置的 vector 项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54512977/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com