理解remove算法

代码搬运工 -_-||

template
typename vector::iterator Remove(const typename vector::iterator& itBeg
    , const typename vector::iterator itEnd, const T& t)
{
    if (itBeg == itEnd) { return itEnd; }
    auto iter = itBeg;
    while (iter != itEnd && *iter != t) { iter++; }
    if (iter == itEnd) { return itEnd; }

    for (auto itBack = std::next(iter); itBack != itEnd;)
    {
        if (*itBack != t)
        {
            *iter++ = *itBack++;
        }
        else
        {
            itBack++;
        }
    }
    return iter;
}

你可能感兴趣的:(C++11)