gpt4 book ai didi

c++ - 为什么没有 std::erase?

转载 作者:IT老高 更新时间:2023-10-28 21:54:25 26 4
gpt4 key购买 nike

在阅读 STL 时,我意识到没有提供 std::erase。我不确定为什么它不存在。下面是一个有效的用例

std::vector<int> odd { 1, 3, 5, 3, 9, 11, 5, 17 };
std::sort(odd.begin(), odd.end());
std::erase(std::unique(odd.begin(), odd.end()), odd.end());

它嵌入在每个容器中。如果性能是原因,那么如果对象是连续的,则可以一次性删除它们。但我想这可以通过帮助模板特化来实现。

最佳答案

它是如何工作的?它只接受一对迭代器。迭代器必须保留对其容器的引用( vector 的迭代器可以仅仅是指针的别名)。

那么算法将如何修改容器本身?它需要这种访问权限。

它必须是一个成员函数。

关于c++ - 为什么没有 std::erase?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51420539/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com