C/C++
文章平均质量分 80
Gary的影响力
本人目前在新浪做微博图片、CDN、云计算等业务的海量日志实时分析,主要使用Elasticsearch, Logstash, Kibana, Spark, Docker等技术。有事请联系:garygaowork@gmail.com
展开
-
浅出C++对象模型——理解构造函数、析构函数执行顺序
本文主要说明对象创建时构造函数的执行顺序,对象成员的初始化顺序;对象销毁时析构函数的执行顺序,对象成员的销毁顺序。 “对象的构造从类层次的最根处开始,在每一层中,首先调用基类的构造函数,然后调用成员对象的构造函数。析构则严格按照与构造相反的次序执行,该次序是唯一的,否则编译器将无法自动执行析构过程。 一个有趣的现象是,成员对象初始化的次序完全不受它们在初始原创 2013-04-11 21:04:08 · 10375 阅读 · 0 评论 -
迭代器失效(2)—一个例子
前几天刚写了一篇关于STL迭代器失效的博文(迭代器失效(1)-小心使用STL容器的erase() ),今天又犯了错误,原因是代码结构的复杂性掩盖了迭代器失效的事实。 现把代码层层简化,如下:#include std::vector myVector;void do_something();void handleElement(int val);原创 2013-01-05 20:01:25 · 1749 阅读 · 4 评论 -
以实践的方式学习C++ &(引用)
1.第一个例子:假设:int var1 = 224; //存放var1的值224的内存地址是0x12ABCDEF则以下Code:int var2 = var1; // 将var1的值复制给var2.int& var2 = var1;//var2 是var1 的别名(var2是var1的引用),var1= var2 = 224,var1的值未发生复制,它们的值的地址都是0x12原创 2012-08-16 09:17:05 · 1162 阅读 · 0 评论 -
迭代器失效(1)-小心使用STL容器的erase()
对于以下代码: my_container.erase(iter); 其中my_container是STL的某种容器,iter是指向这个容器中某个元素的迭代器。如果不是在for,while循环中, 这种方式删除元素没有问题,如果是在for,while中对m_container迭代,删除其中符合条件的所有元素,就可能出现问题。原创 2012-12-16 17:26:48 · 18448 阅读 · 3 评论