首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

STL中set为什么要设KEY和VALUE两项,它的KEY和VALUE不是相同的吗?解决方法

2012-03-03 
STL中set为什么要设KEY和VALUE两项,它的KEY和VALUE不是相同的吗?STL中set为什么要设KEY和VALUE两项,它的KE

STL中set为什么要设KEY和VALUE两项,它的KEY和VALUE不是相同的吗?
STL中set为什么要设KEY和VALUE两项,它的KEY和VALUE不是相同的吗?设两项有什么优点?

[解决办法]
基于一些“统一”的要求。
[解决办法]
set的key_type和value_type都是一样的。
[解决办法]
SET的节点是一个数据.

[解决办法]
为了使意义更明确 ~
[解决办法]
假如我写个两个范型算法:

template <class C>
void f() {
C::key_type k;
……
}

template <class C>
void g() {
C::value_type k;
……
}

在现有的情况下,map和set都可以做这两个函数的模板参数。而如果set只用其一,那这两个函数中就只能有一个可以用set来实例化了。但有些人偏好于认为set中的全是key,另外也会有人偏好于认为set中的全是value,你说用哪个好?

当然,我说的也不绝对,不同的角度完全可以得到不同的看法。我只是想说明,在这个问题上没必要那么认真而已,毕竟同时兼容map的用法也不全是坏事。

热点排行