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

std:地图的key有什么要求

2013-06-26 
std::map的key有什么要求?以前一直都只用过内置的std::string类型做map的key。现在由于某种原因,我需要使用

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 默认的构造函数。


++
已经非常完整了。

热点排行