在C++ 和 C#都用过map,非常常用和实用的一个容器,两个语言中用途都是查找,但是内部的机制却不一样。简单总结下。
1:值与引用:正如C# 和 C++的区别,C#中的map是根据key的地址去找,而C++的map,则是根据key的值去查找。
2:实现机制:如上面所说,对key的不同理解,就决定了不同的算法。C#的map是用hash,而C++的查找,则是用红黑树。
3: 用法比较: 用法大同小异,都是查找,但是由于上面说的实现机制不同,C++的map是用红黑树,所以必须保证key是可以比较的,如果是自己写的类,得自己定义"<"比较。而C#则没有这个限制。
本文对比了C++和C#中Map容器在查找机制、实现方式上的区别,并详细解析了C++使用红黑树、C#采用哈希算法的原因。
3346

被折叠的 条评论
为什么被折叠?



