10 2015 档案

二叉搜索的正确姿势
摘要:一般来说,二叉搜索是这样实现的: 然而这样是非常不合理,第一,left、right用到了左移操作,左移操作对于有符号数,最左添0还是添符号位,在c++里是未定义行为(不过在这里left、right一般大于0,所以符号位就是0),left、right、mid应该用无符号类型,这样可以保证不会溢出,如果 阅读全文

posted @ 2015-10-13 19:15 远近闻名的学渣

C++中作用域,名字查找与函数重载
摘要:杂七杂八的记录一下免得忘了:1,using 声明声明的是名字,所以会把函数以及其重载全部带进去2,函数不能用返回值重载,不能用顶层const重载,可以用底层const重载3,类的成员函数可以在类内部声明,在类外部声明,这个外部指的是类作用域的外层作用域。所以下面的代码是会报错的namespace A... 阅读全文

posted @ 2015-10-08 23:38 远近闻名的学渣

智能指针与循环引用
摘要:c++11中引入了之前在boost库中的智能指针,智能指针有三种shared_ptr, weak_ptr, unique_ptr。引入智能指针的作用是为了保证在出现异常时,也能保证堆内存会被释放掉,如下面代码:void fun() { T *t = new T(); //do somet... 阅读全文

posted @ 2015-10-08 21:04 远近闻名的学渣

函数返回值与RVO优化
摘要:RVO优化:return value optimistic,指当一个函数返回一个值类型而非引用类型时,可以绕过拷贝/移动构造函数,直接在调用函数的地方构造返回值。要发生rvo需要有三个条件:1,如果类型是自定义类型,那么此时的拷贝/移动构造函数是可访问的2,返回类型必须与实际类型完全一致,即返回时不... 阅读全文

posted @ 2015-10-08 20:05 远近闻名的学渣

导航