- 博客(5)
- 资源 (3)
- 收藏
- 关注
原创 Effective STL学习笔记-条款31
了解你的排序选择个人认为掌握并灵活的使用stl的算法,对我们c++编程有着事半功倍的效果,排序算法的使用和掌握更加重要。使用的最多的算法可能就是sort了,或者qsort(条款46的存在可能会让更多人倾向于使用sort而不是qsort)。例如有一个Widget的Vector,你需要挑选出Widget质量最好5个,剩下的可以保持无序。 这时候我们不需要完全排序,sort显得有些浪费。 而parta
2017-10-21 16:03:59 322
原创 Effective STL学习笔记-条款30
确保目标区间足够大看个例子: 我们使用transform函数给一个容器承载计算结果:vector<int> src; //待计算的数据 vector<int> res; //计算结果 src.push_back(0); src.push_back(1); src.push_back(2); src.push_back(3); std::transform(sr
2017-10-14 17:06:05 274
原创 More Effective C++学习笔记-条款5|6
谨慎定义类型转换函数有两种类型函数允许编译器进行这些转换:单参构造函数和隐试类型转换运算符。 例如:class Name { public: Name(const string &name){}; //string转换到Name ... };//有理数类 class Rational { public: //转换int到有理数类 Rational(int numer
2017-10-08 14:35:07 240
原创 More Effective C++学习笔记-条款1|2|3|4
指针和引用的区别主要包括: 任何情况下都不能使用指向空值的引用,这也就意味着使用引用的代码效率会比使用指针高,因为在使用之前不需要测试合法性。 引用总是指向初始化时被指定的对象,而指针可以重新赋值。 当重载某个运算符的时候,应该使用引用,比如operator[]。 vector<int> vec(10); //建立大小为10的向量 vec[5] = 10; //使用引用的方式 *vec[5]
2017-10-06 17:22:47 295
原创 Effective STL学习笔记-条款24
当关乎效率时应该在map::operator[]和map-insert之间仔细选择假设有一个支持默认构造函数和赋值构造函数的类:class Widget { public: Widget() {} Widget(int) {} const Widget& operator=(int) {} }; map<int, Widget> map; map[0] = 0;
2017-10-05 14:31:36 332
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人