STL源码剖析深入学习
CourageK
计算所
展开
-
vector的size和capacity改变时空间分配的过程
当增加新元素(s)时,如果超过当时的容量,则容量会扩充至两倍。如果两倍容量仍不足,就扩张至足够大的容量。以一个例子来说明:#include#include#includeusing namespace std;int main(){ int i; vector iv(2,9); cout<<"size = "<<iv.size()<<endl;原创 2015-04-29 20:26:28 · 595 阅读 · 0 评论 -
memcmp比较两个C风格字符串
/* memcmp example */#include #include int main (){ char buffer1[] = "DWgaOtP12df0"; char buffer2[] = "DWGAOTP12DF0"; int n; n=memcmp ( buffer1, buffer2, sizeof(buffer1) ); if (n>0) p原创 2015-05-06 15:02:59 · 719 阅读 · 0 评论 -
C++内存配置操作和释放操作
这其中的new算式内包含两个阶段操作:(1)调用::operator new 配置内存;(2)调用Foo:Foo()构造对象内容。delete算式也内含两阶段操作:(1)调用Foo::~Foo()将对象析构;(2)调用::operator delete释放内存。原创 2015-04-28 20:29:12 · 467 阅读 · 0 评论 -
函数指针作为参数(以冒泡排序qsort为例)
函数指针作为参数(以冒泡排序qsort为例)原创 2015-04-28 20:11:03 · 923 阅读 · 0 评论 -
前置和后置自增以及解引用重载函数(++、--、*)
区分前置和后置自增重载函数的区别是是否有参数,以及参数的个数原创 2015-04-28 17:23:55 · 1245 阅读 · 0 评论 -
STL_STATIC_TEMPLATE_MEMBER_BUG学习
#includeusing namespace std;// templatetemplateclass testClass{public: static int _data;};template::_data = 1;template::_data = 2;int main(){ cout::_data<<endl; cout::_data<<原创 2015-04-28 09:54:23 · 712 阅读 · 0 评论 -
C++中的内联函数inline总结
原文:http://blog.csdn.net/coder_xia/article/details/6723387突然看到C++Primer中讲到,对于vector的一个循环,调用语句:(示例代码i=v.begin()不是很规范,虽然不会出错,客官请将就着看)[cpp] view plaincopyfor (int i=v.begin转载 2015-04-28 09:51:14 · 1758 阅读 · 0 评论 -
C++ copy和copy_backward用法实例
#include#include#includeusing namespace std;int main(){ // 数组大小为7 int myInts[] = {10,20,30,40,50,60,70}; // 容器大小为8,里面有8个7 vector myVector(8,7); // 1.将数组中的7个数复制到容器的第一个位置,将覆盖容原创 2015-04-29 21:22:18 · 1659 阅读 · 0 评论 -
简单的程序诠释C++ STL算法系列之十四:copy_backward
copy_backward,copy_backward算法与copy在行为方面相似,只不过它的复制过程与copy背道而驰,其复制过程是从最后的元素开始复制,直到首元素复制出来。也就是说,复制操作是从last-1开始,直到first结束。这些元素也被从后向前复制到目标容器中,从result-1开始,一直复制last-first个元素。举个简单的例子:已知vector {0, 1, 2, 3, 4,转载 2015-04-29 21:05:08 · 617 阅读 · 0 评论 -
power函数的非递归经典实现(时间复杂度仅仅为logn)
#includeusing namespace std;template T power(T x,Integer n){ if(n == 0) return 1; if(n == 1) return x; while((n&1) == 0) { x = x*x; n >>= 1; } T result = x原创 2015-05-06 11:24:17 · 1919 阅读 · 0 评论