C++
文章平均质量分 65
fefe82
这个作者很懒,什么都没留下…
展开
-
C++ -- 数组 vs 指针
在很多C++的入门书籍里,原创 2014-07-12 23:35:02 · 940 阅读 · 0 评论 -
c++ – 标准容器可以继承吗
c++ – 标准容器可以继承吗C++ 标准提供了不少容器类,这些为C++的应用提供了很大的便利。但是,总有些时候这些标准容器提供的功能不能完全满足需求,于是就有人从标准容器上继承出了自己的类。 那么,标准容器可以用作基类吗? 先说结论吧,不推荐,不要用。为什么呢? 标准中所用的容器类都没有虚的析构函数。 没有虚析构就意味着这些类并不准备被用于继承。因为当基类没有虚析构的时候,子类的对象有可能原创 2015-03-01 16:15:54 · 2211 阅读 · 0 评论 -
c++ -- operator== vs string::compare() vs strcmp
在stack overflow上看到了这样一个问题:为什么string的operator==会这么慢? 当然提问者的benchmark程序本身有问题,在编译器优化下已经完全无法测试标题中三个函数的性能了,所以这里不去讨论这个作者得到的结果。那么,这三个函数到底哪个会快一些呢?其实,这三个函数最终都是要进行内存的比较的,所以实际上,效率应该是相似的。但是,如果你仅仅是想判断两个 std::string原创 2015-03-03 14:30:54 · 3290 阅读 · 1 评论 -
C++ - 表达式求值顺序
在C++里,表达式求值顺序一直是一个大坑,这是由于为了给编译器更大的优化空间,C++对表达式的求值做了许多非常灵活的规定(其实就是不规定,编译器愿意怎么实现都可以)。这些灵活的规定也给C++带来了许多在其它语言中不存在的未定义行为(undefined behavior),比如i=i++,甚至有一些是标准委员会都没有预想到。在C++03里,表达式的求值顺序依靠序列点(sequency point原创 2014-07-15 22:35:24 · 8027 阅读 · 5 评论 -
c++ -- value category
c++ 的左值、右值、xvalue 等等原创 2015-12-04 23:48:45 · 1690 阅读 · 1 评论