2011-02-23 91 views
0
class Garage { 
    string WorkerFirstName; 
    string WorkerLastName; 
    string WorkerNumber; 
public: 
    Garage() 
    { 
     WorkerFirstName = ""; 
     WorkerLastName = ""; 
     WorkerNumber = ""; 
    } 

    void SetFirstName(string FirstName) { WorkerFirstName = FirstName;}  
    void SetLastName(string LastName) { WorkerLastName = LastName; } 
    void SetNumber(string Number) { WorkerNumber = Number; } 

    string GetFirstName() { return WorkerFirstName; } 
    string GetLastName() { return WorkerLastName; } 
    string GetNumber() { return WorkerNumber; }   
}; 

class GarageList { 
    Garage List[500];     
    int MaxSize; 
    int Size; 
public: 
    GarageList() 
    { 
     MaxSize = 500; 
    } 

    ... //list out functions 
}; 

這是我的設置的刪節版本。我無法弄清楚如何根據姓氏和一個包含車庫類的所有屬性的參考ID製作地圖。我想像地圖<字符串,車庫列表[500]>目錄。STL地圖製作

回答

1

你的意思是你想要一個名稱映射到一個數組?那麼你可以使用map<string, vector<Garage> >

2

你就近了。你所尋找的是:

map<string, Garage>; 

有了這個你GarageList類,您不必擔心參賽人數,地圖會處理這件事給你。

所以GarageList應該是這樣的:

class GarageList { 
    map<string, Garage> garages_;     
public: 
    GarageList() 
    { 
    } 

    int Size() { 
     return garages_.size(); 
    } 

    void AddGarage(const Garage& garage) { 
     garages_[garage.GetLastName()] = garage; 
    } 

    // Return true if found, false otherwise 
    bool FindGarage(const string& lastName, Garage& foundGarage) { 
     if (garages_.find(lastName) != garages_.end()) { 
      foundGarage = garages_[lastName]; 
      return true; 
     } 
     return false; // garage not found with lastName 
    } 
      return 
    ... //list out functions 
}; 
+0

嗯,我得到了它的返回0,但是當我創建一個新的記錄插入陣列它不會在地圖中反映如此。我如何根據WorkerLastName製作地圖的關鍵字? – atc 2011-02-23 06:12:03

+0

t對我來說不清楚這個車庫列表對你來說有多重要,所以讓我通過編輯我的答案(添加車庫和找到車庫)來寫更多這個類。 – Lou 2011-02-23 14:29:52