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

请问个multimap容器的基础有关问题

2012-03-17 
请教个multimap容器的基础问题multimap和map默认都是以 键值 的 操作进行排序插入的。下述代码本意是让ke

请教个multimap容器的基础问题

multimap和map默认都是以 键值 的 < 操作进行排序插入的。
下述代码本意是让key值按字符串比较大小,再插入相应的结点。

C/C++ code
multimap<char*,int> testmap;char s1[10]="de3456789";char s2[5]="abcd";char* p=s1;testmap.insert(make_pair(s1,12));testmap.insert(make_pair(s2,17));testmap.insert(make_pair(p,8));


(问题1:)但实际是比较了字符串地址的大小了吧?因为multimap<char*,int>的key是一个字符指针。不知道是不是这样子?

另外,如果是下面这样:

C/C++ code
multimap<string,int> testmap;char s1[10]="de3456789";char s2[5]="abcd";string str1(s1),str2(s2);testmap.insert(make_pair(str1,12));testmap.insert(make_pair(str2,17));



(问题2:)容器是否是按string值来进行 < 的比较,再insert?

(问题3:)这种情况testmap需要格外开辟空间来存放string值吗?还是直接string的地址空间?


谢谢~


[解决办法]
1.是的 是按照地址大小比较的。

2.当然能

3.是会拷贝一份的!

热点排行