读书人

std:地图的key有什么要求

发布时间: 2013-06-26 14:29:32 作者: rapoo

std::map的key有什么要求?
以前一直都只用过内置的std::string类型做map的key。现在由于某种原因,我需要使用自定类型做key。这个类型含有如下三个数据:一个string的名字,一个vector的3元数字矢量,一个4元数(可以看成是4个数的矢量)。这三个数据如果一样,表明是一个key。


class MyKey {
protected:
std::string name;
Ogre::Vector3 position;
Ogre::Quaternion orientation;
};

那么,vector的key需要哪些条件吗?要提供哪些操作符的重载?
[解决办法]
有 operator<
[解决办法]
能够有那个的弱序比较。也就是说能用<比较
[解决办法]
至少要提供相等,比较大小的操作
[解决办法]
完整的 要求就是
1 支持拷贝构造
2 支持operator=
3 operator< 如果没有operator<那么 map模板必须增加第三个模板参数
[解决办法]
引用:
引用:

完整的 要求就是
1 支持拷贝构造
2 支持operator=
3 operator< 如果没有operator<那么 map模板必须增加第三个模板参数

还少一点
4 默认的构造函数。


++
已经非常完整了。

读书人网 >C++

热点推荐