什么是 std::map<K,V>::map; 以及如何知道在实现/使用 stl 容器和函数时使用什么命名空间?

世界

我正在尝试编写一个继承 std::map 的类,但我也想重载一个特定的函数,同时保持剩余的继承函数可用。在阅读了一些关于它的内容后,您似乎必须使用 map 的命名空间才能使用它的功能。但是我必须使用using std::map<K,V>::map;它才能工作。我的问题是最后一个是什么::map它是地图的命名空间的名称吗?但是,如果我们以 cout 为例,您只需要using cout;. 另外,如何知道 stl 的名称空间的名称?

代码如下所示:

#include <map>

template<typename K,typename V>
class my_map : public std::map<K,V>
{   
private:
    /* data */ 
public:
    using std::map<K,V>::map;
};

阿斯莫
using std::map<K,V>::map;

如果您想在类外使用基本构造函数(以继承构造函数),则需要使用它。

std::map<K,V>::map是构造函数并由类名限定。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

为什么STL函数使用节点的颜色来计算std :: map节点的前身

std :: map <K,V> :: mapped_type的限制是什么?

c ++ stl map.find()中使用什么算法?

以类似方式处理std :: map <K,V>和std :: map <K,V *>

为什么Map <K,V>不扩展Function <K,V>?

什么算作“写入” std :: map?

std :: map的用途是什么?

为什么在std :: map上基于范围的for循环中的const std :: pair <K,V>&不起作用?

为什么将std :: map实现为红黑树?

为什么使用std :: map的代码无法编译?

为什么C ++ std :: map :: operator []不使用inplace new?

使用std :: map :: at时出错

是否存在带有shared_ptr键的std :: set(或std :: map)STL比较器,该键提供基于值的查找?std :: owner_less到底做什么?

std :: map的底层结构是什么?

为什么std :: map需要一对?

为什么std :: map索引减一?

为什么我在map stl中搜索时差很大?

std :: set和std :: map有什么区别

为什么F#的惯用词典集合(Map <K,V>)需要类型K来实现可比的而C#的Dictionary <K,V>却不需要?

为什么我不能使用 std::map[ ] 添加字符串,但 std::map.at() 有效?

为什么std :: map emplace需要在gcc上使用复制构造函数?

为什么无法根据其值字段直接使用std :: sort对std :: map进行排序

在std :: map中使用decltype

在std :: map中使用'auto'

使用std :: map的Miniheap Lambda

为什么std :: map接受std :: pair作为键,而std :: unordered_map不接受?

什么是C ++ std :: unordered_map默认容器?

STL std :: map和std :: vector; 检查地图中的对象类型

C ++在std :: map <>中使用std :: set <>