在C++中,命名空間(namespace)是一種用于組織代碼的方式,它可以幫助我們避免命名沖突
std::map
或std::unordered_map
:std::map
和std::unordered_map
是C++標準庫中的關聯容器,它們可以將鍵值對存儲在內存中。你可以使用這些容器來存儲和管理命名空間中的數據。
例如:
#include <iostream>
#include <map>
#include <string>
namespace myNamespace {
std::map<std::string, int> data;
}
int main() {
myNamespace::data["apple"] = 1;
myNamespace::data["banana"] = 2;
for (const auto& pair : myNamespace::data) {
std::cout << pair.first << ": " << pair.second << std::endl;
}
return 0;
}
如果你需要更高級的內存管理功能,可以創建一個自定義內存管理類,用于存儲和管理命名空間中的數據。
例如:
#include <iostream>
#include <memory>
#include <string>
namespace myNamespace {
class DataManager {
public:
void set(const std::string& key, int value) {
data[key] = value;
}
int get(const std::string& key) const {
auto it = data.find(key);
if (it != data.end()) {
return it->second;
}
return -1; // 或者拋出異常
}
private:
std::map<std::string, int> data;
};
}
int main() {
myNamespace::DataManager manager;
manager.set("apple", 1);
manager.set("banana", 2);
std::cout << "apple: " << manager.get("apple") << std::endl;
std::cout << "banana: " << manager.get("banana") << std::endl;
return 0;
}
請注意,這里的“內存映射”實際上是指將數據存儲在內存中,并使用鍵值對的方式進行訪問。這與操作系統層面的內存映射文件(memory-mapped file)概念不同。在C++中,我們可以使用標準庫容器或自定義內存管理類來實現類似的功能。