在写代码的时候,即使编程老手经常会遇到一个不知道如何抉择的事情,面对查询的需求如何选择容器,容器的大小等因素也会困扰我们的选择。为什么呢?新手面对查询往往会直接选择map,因为map是内部是支持查询函数的,但老手知道map是通过复杂性换取查询的性能的(map的实现往往是红黑树),那如果要保存的数据个数不多呢,是否值得使用map这样的容器呢?
由于测试中有其他的干扰信息,所以测试数据不等于实际效率。这个数据只是一个参考数据。但是我们大致可以得到一些感觉,容器的尺寸小于20时,我们大可以选择vector作为容器。不用选择更加复杂的容器。如果要容纳的对象个数大于50而且需要查询的是很,vector就不要选择了。用更快的容器。对于map和hash_map,优先选择hash_map。当然我说的是STLport的hash_map,不是微软默认的。我在前面《慎用Visual Studio C++默认的hash_map》的文章说明过这个问题了。在此不复述了。阅读全文>
发表于 @ 2009年06月27日 22:31:00|评论(loading...)|举报|收藏