标准库忽略实现基本操作为std::set
和std::map
像继承初始化从语法的std ::设置或std ::地图
set<T> set<T>::getUnion(set<T> other)
和
bool map<K,V>::contains(K key)
我知道有冗长和/或这些方法的间接解决方法,但如果我希望我的代码具有最大的可读性和表达性,我将不得不从STL继承,编写我自己的Set
和Map
类,并自己实现它们。是的,我知道这样做的说教,但事实是STL是不完整的。
我已经这样做了,但现在我可以使用,例如,未初始化我的新类,
Set<int> s = {1,2,3,4};
如何继承了std
类这些初始化?
'bool map :: contains(K key)'仅在非常狭窄的用例中有用。大多数情况下,您想要访问给定密钥的值。 –
所以'vector :: back()'。大多数情况下,您只需要'push_back',迭代或按索引访问。但是这并没有阻止STL作者指定“back”。实际情况是,为'map'实现的任何为Python'dict'实现的操作都应该实现。 Python'set'也是一样。问题不在于使用频率,而在于数据结构所代表的数学,直观和逻辑结构。 –