STL
文章平均质量分 60
码农SW
这个作者很懒,什么都没留下…
展开
-
条款18:避免使用vector<bool>
做为一个STL容器,vector确实只有两个问题。第一,它不是一个STL容器。第二,它并不容纳bool。除此以外,就没有什么要反对的了。一个东西不能成为STL容器只因为会有人会说它是。一个东西要成为STL容器就必须满足所有在C++标准23.1节中列出的容器必要条件。在这些要求中有转载 2011-07-16 15:49:54 · 3213 阅读 · 1 评论 -
C++ 智能指针(Smart Pointer)
http://blog.csdn.net/zhongjiekangping/article/details/5787773 智能指针具有非常强大的能力,谨慎而明智的选择能带来极大的好处。我不否认智能指针的能力,虽然我在之前的否认过auto_ptr。可能由于我自身能力的限制,体会不转载 2011-07-17 11:39:25 · 855 阅读 · 0 评论 -
为什么不要在STL容器中存储 auto_ptr 对象
Posted on 2009-04-27 20:37 月光林地 大多数C++ 程序员都知道不要把auto_ptr 对象作为STL容器元素来使用。但是很少有人知道到底是为什么。C++标准如是说:“STL元素必须具备拷贝构造和可赋值……”,其意思是说对象可以进行安全的赋值操作,可以将转载 2011-07-17 11:50:51 · 1921 阅读 · 0 评论 -
STL中容器的几个容易混淆的成员函数-size, capacity, resize, reserve
1. container::size()用于表示容器中有几个元素,用n来表示, 并不能表示容器现有的内存最多能存多少个元素。 2. container::capacity()用于表示容器现有的内存最多能够存放多少个元素, 用m来表示。 如果想要计算容器现有的内存还原创 2011-07-31 12:29:43 · 1032 阅读 · 0 评论 -
在GCC和Visual Studio中使用hash_map
熟悉STL或熟悉ACM/ICPC的话,其中的set, map, multiset, multimap一定用过无数次了,它们都是用平衡二叉树(红黑树)实现的,复杂度为O(lgn)。我们也知道set, map可以通过哈希来实现,复杂度只有O(1),可惜直到现在,unsorted_se转载 2011-08-05 21:57:44 · 1096 阅读 · 0 评论 -
vector::resize() 使用array index 和vector::reserve()使用push_back()的性能差别
对于vector使用来说,为了防止reallocate内存,而导致的数据拷贝产生的额外耗时。可以通过以下两种组合来防止reallocate.1. vector::resize() 使用array index2. vector::reserve()使用 push_bac原创 2011-09-30 13:43:02 · 1634 阅读 · 0 评论 -
Linux与Windows中map类erase方法实现的不同决定使用的不同
1 #include iostream> 2 #include map> 3 #include string> 4 5 using namespace std; 6 7 int main(int argc, char* argv[]) 8 { 9 mapstring, int> MyMap;10 11 MyMap["bujiwu"] =转载 2012-02-06 10:47:04 · 1237 阅读 · 0 评论 -
hash_map hash_set命名空间
由于hash_map和hash_set这两个容器并没有被纳入C++标准,所以,这两个容器并不能像其他容器一样包含在STD命名空间下。也就是说,using namespace std;后是不能找到这两个容器的,这两个容器在在VS IDE下, 是属于STDEXT命名空间下。用 using namspace stdext;即可。原创 2011-07-24 12:01:49 · 1840 阅读 · 0 评论 -
动态hash之linear Hash的实现和性能比较
linear hash 一,在介绍linear hash 之前,需要对动态hash和静态hash这两个概念做一下解释: 静态hash:是指在hashtable初始化得时候bucket的数目就已经确定了,当需要插入一个元素的时候,通过hash函数找到对应的bucket number,之后插入即可。不论用什么冲突解决方法,当插入的元素越来越多时,在这个hash表中查找元素的效率会变的越原创 2011-07-31 20:22:59 · 5657 阅读 · 0 评论