提供一个map容器的封装实例
时间: 2023-12-10 15:39:57 浏览: 90
以下是一个简单的封装了map容器的示例代码:
```C++
#include <iostream>
#include <map>
template <typename Key, typename Value>
class MapWrapper {
public:
void put(const Key& key, const Value& value) {
map[key] = value;
}
bool contains(const Key& key) const {
return (map.find(key) != map.end());
}
const Value& get(const Key& key) const {
return map.at(key);
}
void remove(const Key& key) {
map.erase(key);
}
private:
std::map<Key, Value> map;
};
int main() {
MapWrapper<std::string, int> my_map;
my_map.put("apple", 10);
my_map.put("banana", 20);
my_map.put("orange", 30);
if (my_map.contains("apple")) {
std::cout << "Value of apple: " << my_map.get("apple") << std::endl;
}
my_map.remove("banana");
if (!my_map.contains("banana")) {
std::cout << "Banana is not in the map." << std::endl;
}
return 0;
}
```
在这个示例中,我们使用一个模板类 `MapWrapper` 对标准库中的 `std::map` 进行了封装。我们提供了 `put`、`contains`、`get` 和 `remove` 四个方法,分别用于插入键值对、判断是否包含某个键、获取某个键对应的值以及删除某个键值对。在封装的过程中,我们将 `std::map` 对象作为 `MapWrapper` 的私有成员,并在各个方法中调用它的相应方法。这样做的好处是,我们可以在封装类中对 `std::map` 进行更多的控制,比如添加一些额外的方法或者修改一些默认行为,从而让使用者更加方便地使用这个容器。
阅读全文