2017-04-03 111 views
1

與其他人的負載在這裏相同的故事。對C++來說很新穎(一般編程),並且很擔心分配。二維數組與不同類型的元素和使用類

我必須創建和實現一個DVD商店的類。我還必須創建一個數組來存儲有關DVD的信息。數組的元素必須是類的類(我必須創建)

我的挑戰到目前爲止,數組必須包含int,string類型的元素。據我所知(很多谷歌搜索)這是不可能的。 我覺得它可能會以某種方式使用類,但我無法找到解決方法。

請幫忙。

感謝

萊昂

+1

與其他人的負載相同的響應:使用結構的2d數組(矢量)。把你的DVD存儲物品放入一個結構體中。 –

+0

你說你必須創建一個數組,其中每個元素是一個類的一個實例。你*知道如何創建一個班級?以及如何將它用作類型?你*知道如何創建一個像'int'這樣的數組?你知道如何創建一個「2d」數組'int'?那麼你真的知道你需要知道的一切,只需要結合你的知識。雖然說實話我不明白你爲什麼想要一個「2D陣列」?只需簡單的「DVD」類數組即可。 –

+0

該數組不包含int和string類型的元素。它將包含'class DVD'類型的元素,'DVD'類將包含ints和strng。 –

回答

1

順便說一句,你的工作原始數據庫,所以我們姑且稱之爲一個DVD商店項記錄。這個想法是儘可能一般地對待事物,直到需要特定的東西。

一個DVD商店的記錄:

struct Record 
{ 
    std::string title; 
    std::string artist; 
    std::string genre; 
    double price; 
}; 

我們創建一個數據庫來保存所有記錄:

std::vector<Record> database; 

您可能希望創建索引表幫助您加快搜索速度,而不每次都必須求助於數據庫。

std::map<std::string /* Title */, unsigned int /* Index into database */> Index_By_Title; 
std::map<std::string, unsigned int> Index_By_Artist; 

這將成爲一個2D容器,因爲你是通過使用一個指數到矢量訪問的行,則可以通過使用構件名稱訪問的列。