有如下代码: #include <iostream> #include<map> using std::map; using namespace std; int _tmain(int argc, _TCHAR* argv[]) { //[1] map<int,string> maplive; maplive[1] = ""; //[2] map<string,int> maplive1; maplive1["1"] = 10; return 0; } 第二个报错: 代码头部加上 |
|
5分 |
作为Key的才需要用到具体函数吧
Value只是纯粹的储存而已 |
20分 |
stl map的实现是红黑数 查找默认使用小于号需要重载小于号 operator<不在xstring定义
|
15分 |
当key不能比较大小写,要自己重写key比较大小的方式。
|
copy了你的代码调试了一下,发现在没有#include <string>的情况下应该是根据<xstring>来实例化string对象,<xstring>是间接包含在<map>中的,<xstring>中重载的<操作符跟<string>中重载的<操作符是不一样的,所以第二个会报错
map中的key是需要支持比较操作符的,所以仅仅是#include <map>的话,string对象是不能作为map中的key的 |