2013-10-10 76 views
0

我目前正在C++學校作業,我有3個對象類型。客戶,租用和旅遊。客戶喜歡旅遊和租用。要求是基於用戶對數據結構類型的選擇,使用Array,Vector,Map和List來保存這些信息。有1000個記錄的數據文件,應用程序將讀取它們並創建必要的對象。例如,如果用戶選擇矢量,它將創建包含上述對象的3個矢量。接下來的操作將在其上執行。數組,矢量,地圖和列表數據搜索

  • 加載我們爲您提供的大型數據集。如果您正在使用的數據結構支持排序,則應按 說明進行排序。
  • 準備的客戶,其已預定將在今年
  • 結束前發生 旅遊準備由客戶預訂旅行團誰欠我們的名單列表超過 $ 2000,在日期排序他們的帳戶是由於
  • 準備的客戶,其郵政編碼有5

開始我已經在我的主要應用頭文件之後聘用的列表。

私人:

string structureType; 

Customer** customerListArray; 
Tour** tourListArray; 
EquipmentHire** equipmentsListArray; 

vector<Customer *> customerListVector; 
vector<Tour *> tourListVector; 
vector<EquipmentHire *> equipmentsListVector; 

std::map<string, Customer*> customerListMap; 
std::map<string, Tour*> tourListMap; 
std::map<string, EquipmentHire*> equipmentsListMap; 

list<Customer *> customerListList; 
list<Tour *> tourListList; 
list<EquipmentHire *> equipmentsListList; 

然後我就加載基於用戶的選擇這些對象的數據。然而,我的問題是,我是否需要爲每種類型的數據結構編寫不同的函數來執行上述操作,還是我可以在所有這些接口上使用通用接口?

我的C++知識非常有限,需求是使用C++ 98。

謝謝。

回答

0

通用接口是「STL容器」。這不是C++中定義的強大接口,但是您可以依賴所有STL容器來實現這個概念。因此,您可以使用模板來編寫一次適用於所有模板的代碼。

(請注意,地圖和矢量的區別在於地圖有std::pair<>作爲其元素的類型。在實踐中,這可以通過提供「身份」和選擇「映射」到你的搜索功能周圍的工作。)