您现在的位置: 首页 > 网站导航收录 > 百科知识百科知识
c++ 中明明有vector了为什么还要有stack?
向量,堆栈,语义c++ 中明明有vector了为什么还要有stack?
发布时间:2019-02-08加入收藏来源:互联网点击:
c++ 中明明有vector了为什么还要有stack?
回答于 2019-09-11 08:43:50
回答于 2019-09-11 08:43:50
操控不一样
回答于 2019-09-11 08:43:50
vector是容器,而stack是容器适配器,stack只提供了堆栈相关的接口,只关心这些接口,不关心用了那个容器,改变容器也无需修改代码。
回答于 2019-09-11 08:43:50
“Stack extends Vector”从语义上意味着:堆栈是个向量 或者 堆栈属于向量。 其实从现实生活中,并不会认为堆栈是从向量衍伸而来的,所以这种继承关系会让人从语义上觉得奇怪。
有点像是:某人为了贪图方便,定义猴子的时候,直接从人类继承过来了;结果语义变成了 猴子属于人类。
Effective java上说继承有自己的一些原则,但是显然栈并不是向量,所以栈不应该扩展向量。同样的,Properties不应该继承HashTable.这样回导致子类拥有一些父类的方法,逻辑奇怪也可能出现歧义。
上一篇:十万级别,有哪些良心车型推荐?
下一篇:返回列表
相关链接 |
||
网友回复(共有 0 条回复) |