2016-09-06 85 views
0

嗨,我是新的C++,我想創建一個數組這樣,但C++:C++重構陣列

rooms { 

     1 { 'name' : 'Room1' }, 
     2 { 'name' : 'Room2' } 

    } 

有人可以幫助我?您的時間

+0

您所要求的字典(圖),而不是名單。 – Uriel

+0

像'std :: vector >'? –

+0

查看http://www.cplusplus.com/doc/tutorial/structures/上的結構數組示例,儘管您可能希望將它們存儲在比數組更好的容器中:set,list或vector ,或索引類型作爲地圖,會更合適。 – Lanting

回答

2

坦克定義structclass代表房間的數據,並使用std::vectorstd::mapstd::unorderd_map存儲房間:

#include <iostream> 
#include <vector> 
#include <map> 

struct Room { 
    std::string name; 
    Room(std::string _name) : name(_name) {} 
    Room() {} 
}; 

int main() { 
    std::vector<Room> rooms{{"Room1"}, {"Room2"}}; 
    std::cout << rooms[0].name << std::endl; // prints "Room1" 

    std::map<int, Room> roomsMap{ 
     {1, Room{"Room1"}}, 
     {2, Room{"Room2"}} 
    }; 
    std::cout << roomsMap[1].name << std::endl; // prints "Room1" 
    return 0; 
}