美文网首页Exceptional C++
【Exceptional C++(5)】使用标准库

【Exceptional C++(5)】使用标准库

作者: downdemo | 来源:发表于2018-01-26 15:12 被阅读6次
  • 使用标准库算法比自己徒手编写的算法实现好得多,比如避免出现在上个条款中的各种缺陷
// 修改后的版本,仍然存在对l.end()多余的调用
string FindAddr(const list<Employee>& l,const string& name)
{
    string addr;
    for (list<Employee>::const_iterator i = l.begin(); i != l.end(); ++i)
    {
        if ( (*i).name == name)
        {
            addr = (*i).addr;
            break;
        }
    }
    return addr;
}
  • 只要简单地用find()就可以避免产生两个临时对象和所有l.end()带来的低效
string FindAddr(const list<Employee>& l, const string name)
{
    string addr;
    list<Employee>::const_iterator i = find(l.begin(), l.end(), name);
    if (*i != l.end())
    {
        addr = (*i).addr;
    }
    return addr;
}

相关文章

网友评论

    本文标题:【Exceptional C++(5)】使用标准库

    本文链接:https://www.haomeiwen.com/subject/vjqwaxtx.html