0
我想在我的mainRegister地圖來訪問第二個元素在地圖中第二個元素:訪問是對象的指針
class Manager
{
private:
std::map<boost::uuids::uuid, Rental*> mainRegister;
std::vector <Rental*> archiveRegister;
std::vector<Client*> ClientRegister;
std::vector<Vehicle*> VehicleRegister;
public:
Manager();
void createRental();
void deleteRental(Rental rent);
std::string showArchive() const;
std::string showMain() const;
std::string showVehicles() const;
std::string showClients() const;
void sortDate();
void sortClient();
bool checkVehicle(std::map <Vehicle*, Rental*> myMap);
virtual ~Manager();
protected:
};
這裏是我想要做的事:
void Manager::deleteRental(Rental* rent)
{
for (auto it = mainRegister.cbegin(); it != mainRegister.cend()
{
if (it.second->getUUID() == rent->getUUID())
{
archiveRegister.push_back(it.second);
mainRegister.erase(it++);
}
else
{
++it;
}
}
}
我的主要目標是找到在地圖元素,第二個元素具有相同的UUID作爲傳遞給方法的對象,然後移動該對象將存檔註冊向量,然後從地圖中刪除該元素。
這我得到的錯誤是:
-struct的std :: _ Rb_tree_const_iterator>」沒有名爲成員 '第二' |
-no調用'std :: vector :: push_back(second_t>)'的匹配函數|
我知道,可能我試圖訪問地圖中每一對的第二個元素的方式是完全錯誤的,但我真的不知道如何做到這一點。
嘗試用'它 - >二線> getUUID()'(' - >'代替'.'來訪問'second') – max66
你使用點(。)運算符解引用指針類型的對象。按照@ max66的建議進行操作 – someone