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