gpt4 book ai didi

c++ - 如何在 map 中返回空值?

转载 作者:行者123 更新时间:2023-12-01 12:37:51 32 4
gpt4 key购买 nike

如果 accountNo,我试图返回 null没有找到 map .
但是我过去只在 java 中使用过链表。
我不知道如何在 C++ map 中返回其他东西。

113 Account Bank::BalanceEnquiry(long accountNo){
114 map<long, Account>::iterator itr = accounts.find(accountNo);
115 return itr->second;
116 }
任何人都可以帮忙吗?

最佳答案

您可以使用 std::optional ,这是一个可能包含也可能不包含值的包装器:

std::optional<Account> Bank::BalanceEnquiry(long accountNo){
auto itr = accounts.find(accountNo);

if(itr == accounts.end()) {
return std::nullopt; // empty value, that's like null from Java
}

return std::optional<Account>{itr->second}; // return non-empty value
}
它可以像这样使用(使用 Bank -object myBank ):
std::optional<Account> balanceEnquiry = myBank.BalanceEnquiry(someValue);

if(balanceEnquiry) {
// entry found, we can extract the actual value

Account foundAccount = balanceEnquiry.value();
}
else {
// entry not found
}

关于c++ - 如何在 map 中返回空值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62768734/

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