查找pair <string,string>的向量是否包含与第一个字符串匹配的对

时间:2016-08-25 16:49:53

标签: c++ search vector

是的,我知道标题很复杂,所以我会尝试解释我的情况:

我有一对字符串对象_stream_readable.js:512 dest.end(); ^ TypeError: dest.end is not a function at Stream.onend (_stream_readable.js:512:10) at Stream.g (events.js:286:16) at emitNone (events.js:91:20) at Stream.emit (events.js:185:7) at endReadableNT (_stream_readable.js:975:12) at _combinedTickCallback (internal/process/next_tick.js:74:11) at process._tickCallback (internal/process/next_tick.js:98:9) ,其中包含一对名称姓氏

是否有一种简单的方法可以使用std::vector< std::pair<std::string, std::string> >find来获取find_if中仅匹配对的第一部分的所有对?

例如,如果我的向量包含对:

vector

有没有办法使用John Doe Ivan Ivanovitch Richard Stallman find来检查我的向量是否包含与名字find_if匹配的任何pair,而忽略了姓氏(我将在稍后使用)?

假设我的向量只包含明显不同的名称和姓氏,并且从不对具有相同John的对,意味着没有两个firstJohn。< / p>

1 个答案:

答案 0 :(得分:1)

std::find_if(vec.begin(), vec.end(), [](std::pair<std::string, std::string> const & elem)
                                     {
                                          return elem.first == "John";
                                     });

您可以将返回值与vec.end()进行比较,以查看查找是否成功