请教个multimap容器的基础问题
multimap和map默认都是以 键值 的 < 操作进行排序插入的。
下述代码本意是让key值按字符串比较大小,再插入相应的结点。
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是一个字符指针。不知道是不是这样子?
另外,如果是下面这样:
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的地址空间?
谢谢~
...全文
相关推荐
C++_STL使用例子大全
通过学习和掌握STL的使用,可以让C++程序员在处理集合、排序和搜索等问题时更加得心应手。上述代码示例从基础的容器使用方法入手,逐步深入到STL的各个组成部分,是快速上手练习STL的优秀资源。
STL标准模板库笔记
总结来说,C++ STL通过提供一系列高效的数据结构和算法实现,极大地简化了程序员的开发工作,使得他们能够专注于问题解决而无需从头编写基础代码。了解STL的使用方法,对于进行高效C++编程至关重要。
数据处理面试题
关联式容器与散列表是处理海量数据的基础,因为它们能够快速地根据键值对数据进行组织和查找。set和map是关联式容器的基础类型,其中set的每个元素都是唯一的键值,而map则将键与值一一对应起来。
数据处理面试题.pdf
对于存储和处理海量数据时,不仅需要对基础数据结构有深入理解,还需要掌握解决特定问题的算法和模式。
SCAU数据结构-STL详解-20210609.pptx
SCAU(华南农业大学)在此主题中深入讲解了STL的基础概念、主要组件以及常见算法。STL的核心组件包括容器、迭代器和算法。


