gpt4 book ai didi

c++ - 为什么在 std::vector 删除中需要 begin()?

转载 作者:太空狗 更新时间:2023-10-29 20:09:45 24 4
gpt4 key购买 nike

为什么我们要写v.erase(v.begin(), v.begin()+3)

为什么不将其定义为 erase(int, int) 以便您可以编写 v.erase(0,2) 并且实现负责 开始()

最佳答案

接口(interface) container.erase(iterator, iterator) 更通用,适用于没有索引的容器,如 std::list。如果您编写模板并且并不真正确切地知道代码要在哪个容器上工作,那么这是一个优势。

最初的设计旨在尽可能通用,迭代器比索引更通用。设计者本可以vector 添加额外的基于索引的重载,但决定不这样做。

关于c++ - 为什么在 std::vector 删除中需要 begin()?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43204502/

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