我有一个文本框&字符串列表(数组)。我正在使用std::back_inserter
过滤列表:
std::vector<string> upprCase;
....
std::remove_copy_if(
upprCase.begin(),
upprCase.end(),
std::back_inserter(filteredList),
std::not1(filter(str2)));
使用这个,我能够过滤字符串的初始字符,但是如何在任何地方过滤带字符的字符串?
例如,如果upprCase
是{abc,bcd,cde}
而str2=bc
(来自文本框),我想要filteredlist{abc,bcd}
答案 0 :(得分:0)
// copies only the items where predicate returns 'false' ...
std::remove_copy_if(
upprCase.begin(),
upprCase.end(),
std::back_inserter(filteredList),
[&](const std::string &s){ return (s.find(str2) == std::string::npos); }
);
或者:
// copies only the items where predicate returns 'true' ...
std::copy_if(
upprCase.begin(),
upprCase.end(),
std::back_inserter(filteredList),
[&](const std::string &s){ return (s.find(str2) != std::string::npos); }
);