gpt4 book ai didi

c++ - 迭代器实现

转载 作者:行者123 更新时间:2023-11-27 23:20:27 24 4
gpt4 key购买 nike

一般实现插入功能时pair<iterator,bool>返回的是STL库我正在实现类似 STL 的类。我可以在对中返回一个迭代器作为局部变量,即

itartor it;//init it
return pair<iterator,bool>(it,true);

或者我应该动态分配迭代器即:

itartor it = new iterator;
return pair<iterator,bool>(*it,true);

最佳答案

您应该使用第一个选项。第二个没有任何理由,因为您无论如何都在取消引用指针。和泄漏内存:

iterator it = new iterator;
return pair<iterator,bool>(*it,true);
^ dereference here -> memory leak.

标准库迭代器设计为按值传递。您应该确保您的迭代器复制成本低,并避免所有动态内存管理陷阱。

关于c++ - 迭代器实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13349468/

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