剛接觸C++,並不確定我要去哪裏錯了。仍圍繞ptrs包裹我的頭。找到並返回一個指向一個向量中的對象的指針
我有一個配置文件對象的向量。我想根據它的一個屬性找到一個特定的對象。然後我想要返回該對象。我不想製作副本或任何對象,所以我想我需要返回一個指向特定對象的指針?
這裏是我的代碼:
Profile* profileManager::getProfile(const std::string& name)
{
std::vector<Profile>::iterator it = std::find_if(allProfiles.begin(), allProfiles.end(), [name](Profile &p) { return p.getName() == name; });
return it != allProfiles.end() ? *it : nullptr;
}
有幾件事情錯了,我不知道如何解決了。如果找不到匹配並讓調用者處理它,我想返回null,那麼我該怎麼做?目前我遇到了一種不兼容的類型,我試圖改變它的迴歸,但沒有運氣。它也說它不是正確的類型。如果發現它,我如何獲得它返回指向配置文件的指針?
任何幫助/建議表示讚賞。謝謝。
如果'* it'是'Profile',你將如何得到'Profile *'?除此之外,它看起來是對的。 –
具有完整意義,我正在打破我的頭閱讀ptrs。 – user3238415
由於它不是配置文件ptrs的向量,只是配置文件對象的向量,我只需要返回配置文件對象。我是通過引用的方式做到這一點,沒有額外的副本,一切都很好? – user3238415