我知道继承STL类是个不好的想法。但是是否有其他方法来扩展它们呢? 比如说,为了提高可读性,我想要在我的向量上调用一个“add”方法,而不是那些难以阅读的“push_back”。 或者,我想要在我的std::map中添加一个简单的“hasKey”方法。 除了创建一个包含std::vector成员的整个包装类,并将每个函数调用从我的包装器传递到向量中,还有其他的方法吗?
你应该使用免费函数:template<typename... Args> bool has_key(std::map<Args...> const& map, typename std::map<Args...>::key_type key) { return map.find(key) != map.end(); } 如果不必要,就不要使用继承。这很愚蠢。
std::vector::push_back
,而他们需要学习什么是add
。但让我们假装这只是一个(糟糕的)例子。 - Benjamin BanniermyMap.hasKey(key)
而不是myMap.find( key ) != myMap.end()
,前者显然更容易理解。 - PortMan#define begin {
和#define end }
? - Benjamin Bannier