c – 我是否保证std :: unique将保留第一个元素?

考虑一个排序的std :: vector< std :: pair< int,int>>基于对的第一个元素的比较.

现在假设我申请:

std::unique(std::begin(v), 
            std::end(v), 
            [](const std::pair<int, int>& x, const std::pair<int, int>& y)
            {return x.first == y.first;});

我是否保证std :: unique将保留每个相等范围的第一个元素?

是.

Eliminates all but the first element from every consecutive group of equivalent elements from the range [first, last) and returns a past-the-end iterator for the new logical end of the range.

From here.

您给出的BinaryPredicate意味着将删除y等于前一个元素x的任何元素.

相关文章
相关标签/搜索