gpt4 book ai didi

c++ - C++中迭代器的返回

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

有人可以解释一下我可以返回列表迭代器吗?

list<Account>::iterator Company::findAccount(int id){
for(list<Account>::iterator i = listOfAccounts.begin(); i != listOfAccounts.end(); ++i){
if(i->getID() == id){
return i;
}
}
return 0;
}

返回列表迭代器也是一种好习惯吗?

已编辑

也可以在语句中使用这个函数:

if(findAccount(id)){
throw "hey";
return;
}

最佳答案

在您的情况下,返回迭代器会暴露类的内部结构,这几乎总是一件坏事。正如@Paul 在 his answer 中所说,一些 STL 算法返回迭代器。但是,它们返回输入集合上的迭代器。从你的方法的名称来看,我想最好返回一个对象或一个 const 引用。

关于您的编辑,您可能需要查看 Null Object Pattern .或者,您可以提供一种方法 DoesAccountExist。如果对该方法的调用返回 true,则对 findAccount 的调用必须成功,否则会引发异常。

关于c++ - C++中迭代器的返回,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3061324/

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