[英]inserting object into std::map
我有一個 function bool GateControl::addAuthorization(CardNumber number, const string& name, const string& startTime, const string& endTime)
如果項目已經在 map 內,它應該返回 false,如果不在,則返回 true map 將項目插入 map。 這就是我所擁有的:
struct Authorization
{
Authorization() { }
Authorization(CardNumber number, const string& name, const string& startTime, const string& endTime)
: number_(number), name_(name), startTime_(startTime), endTime_(endTime) { }
CardNumber number_;
string name_;
string startTime_;
string endTime_;
};
typedef map<CardNumber, Authorization> AuthorizationMap;
typedef AuthorizationMap::iterator AuthorizationMapIterator;
typedef vector<Authorization> AuthorizationVector;
bool GateControl::addAuthorization(CardNumber number, const string& name, const string& startTime, const string& endTime)
{
Authorization item;
item = Authorization(number, name, startTime, endTime);
if ( authorizationMap_.find(number) == authorizationMap_.end() ) {
return false;
} else {
authorizationMap_.insert({number, item});
return true;
}
}
所以,打破這個,你想知道一個鍵(數字)是否存在於 std::map 中?
使用 find 運算符,如下所示:
if ( AuthorizationMap.find(number) == AuthorizationMap.end() ) {
// not found
} else {
// found
}
或者,更簡單地說:
// return false if number is already in AuthorizationMap
return (AuthorizationMap.find(number) == AuthorizationMap.end());
可在此處找到查找 function 的文檔: https://www.cplusplus.com/reference/map/map/find/
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.