我正在開發一個程序,在C++ 11中,我需要在兩個類中使用C++ STL映射。 地圖在使用的兩個地方有相同的鍵和值列表。如何在程序中聲明/定義一次並在兩個類中使用地圖列表?
這些類是在程序的不同部分使用:
// in other part of the program
void check_something()
{
// the size of the list can be 100, 200 or ...
map<string, string> amap{
{"something", "nothing"},
{"key", "value"},
};
SameClass sc{amap};
// use sc
}
// in other part of the program
void check_other_thing()
{
// the size of the list can be 100, 200 or ...
map<string, string> amap_2{
{"something", "nothing"},
{"key", "value"},
};
SameClass sx{amap_2};
// use sx
}
現在這個工程(用於測試),但我想知道(用於維護和優化)如何聲明和定義一次然後在程序中使用我需要的地圖?
是否需要創建一個類或結構或函數,將地圖放入shared_ptr中並返回地圖?
我不想使用全局變量!
如果你打算圍繞它,它只是使它成爲一個榮耀的全局變量,我推薦一個全局變量。這個圖是不變的,還是實際上是從程序的一個或多個部分修改的?這是你真正需要擔心的地方。 – chris
喜歡與否,你的地圖實際上是全局變量。 – user3528438
地圖不變,或者sx和sc可以改變他們自己的副本嗎? Antoher問題:僅由SameClass或不同對象使用的地圖? – Christophe