我有 2 个迭代器 range_begin、range_end,它们是我的容器。我需要找到所有以 char 前缀开头的字符串。这是我的代码:
template <typename RandomIt>
pair<RandomIt, RandomIt> FindStartsWith(
RandomIt range_begin, RandomIt
range_end,char prefix){
auto it=equal_range(range_begin,range_end,prefix,
[prefix](const string& city){return city[0]==prefix;});
return it;}
例如,对于
const vector<string> sorted_strings = {"moscow", "murmansk", "vologda"};
auto it=FindStartsWith(strings.begin(),strings.end(),'m');
我想首先在“莫斯科”上获得迭代器,最后在“摩尔曼斯克”之后获得迭代器。
我收到奇怪的编译器错误。出了什么问题,我该如何解决?我无法编写正确的 lambda 比较器。