所以,我得到這個:C++地圖與結構
struct People_Info {
bool isWorking;
std::string name;
int age;
float height;
};
int counter = 0;
int random = urand(1, 4);
std::map<uin64, People_Info> PeopleMap;
現在,函數將被調用,將創建在地圖上用這個結構,將設置一些默認值的條目:
PeopleMap[counter].isWorking = false;
PeopleMap[counter].name = "Mr";
PeopleMap[counter].age = 1;
PeopleMap[counter].height = 1.60f;
counter++;
現在,這是應該爲某個新人輸入條目的函數,但是,在整個腳本中,我將刪除一些條目,所以如果我有5個元素,並且刪除了例如第二個的話,我想編輯大家的一些變量在地圖:現在
for(int i = 0; i < 5 ; i++) {
if(PeopleMap[i] == PeopleMap.end()) // Don't edit map entries that are erased
continue;
PeopleMap[i].isWorking = true;
}
,由於某種原因,它仍然是編輯所有條目,做我需要使用新作,每一個結構條目?
'if(PeopleMap [i] == PeopleMap.end())'是你的實際代碼的一部分嗎?因爲這不會編譯。 –