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的用法也不全是坏事。