【发布时间】:2021-12-24 04:46:38
【问题描述】:
例如考虑vector<pair<string,int>>
它包含:
ABC 1
BCD 2
CDE 3
XHZ 4
string s;
cin>>s;
if(find_if(vec.begin(),vec.begin()+3,cmp)!=vec.begin()+3) // I want to check only first 3 values
我需要 cmp 来使用 find_if 查找给定的字符串是否存在
编辑:
如何使用比较器(cmp)传递字符串 s 并且向量将始终包含至少 3 个元素
【问题讨论】:
-
将
vec.begin()+3替换为vec.end()。您的cmplambda 可能看起来像auto cmp = [](const std::pair<std::string, int> pair) { return pair.first == myString; } -
@Mansoor 有点隐藏是一个评论,提到向量的
end()是不需要的。应该只搜索前 3 个元素,我想可以确保某处至少有 3 个元素。
标签: c++ algorithm c++11 vector stl