Tag: stl

inheritanceJava集合接口(Set,Map,List等)的C ++等价物是什么? 或者扩展AbstractCollection?

我已经开始使用C ++进行编码,来自Java背景(实际上我在我的大学学过C ++,但是我们从未进入过STL等) 无论如何,我已经到了我在各种集合中安排数据的地步,我立刻告诉自己“好吧,这是一种Set;这是一个List或一个ArrayList;这是地图等“ 在Java中,我只想让我正在编写的任何类实现Set或Map或List接口; 但我可能不会继续inheritanceArrayList或HashSet或者什么不是,那里的实现有一些参与,我不想搞砸它们。 现在,我在C ++中做什么(使用标准库)? 似乎没有集合,映射,列表等的抽象基类 – 相当于Java接口; 另一方面,标准容器的实现看起来非常可怕。 好吧,也许他们一旦你了解它们就不那么可怕了,但是假设我只是想写一些类似于在C ++中扩展AbstractSet的非虚拟类? 我可以传递给任何需要Set的函数吗? 我应该怎么做呢? 只是为了澄清 – 我不一定想做Java中的常见做法。 但是,另一方面,如果我有一个对象,从概念上讲,它是一种集合,我想inheritance适当的东西,免费获得默认实现,并由我的IDE指导实现我应该实现的那些方法。

是否有一个Java Map keySet()等效于C ++的std :: map?

是否有一个Java Map keySet()等效于C ++的std::map ? Java keySet()方法返回“此映射中包含的键的设置视图”。