摘要: 对象移动 新标准的一个最主要的特性就是可以移动而非拷贝对象的能力,在其中某些情况下,对象拷贝后就立即销毁了,这些情况下移动而非拷贝对象会大幅度提升性能。使用移动而不是拷贝的另一个原因在于源于IO类或Unique_ptr类,这些类都包含不能被共享的资源。(如指针或IO缓冲)。(这种拷贝一般是指类值拷贝 阅读全文
posted @ 2020-12-04 22:08 LeeSCUT 阅读(503) 评论(0) 推荐(0)
摘要: Swap交换 有管理到内存资源的类通常会定义一个名为swap的函数,对于需要使用进行排序算法的类swap是特别重要的,它能够交换两个元素。 swap操作通常包括一次拷贝初始化(设置临时中间量)和两次赋值操作。 HasPtr temp = v1; v1 = v2; v2 = temp; 这需要分配一个 阅读全文
posted @ 2020-12-04 22:06 LeeSCUT 阅读(842) 评论(0) 推荐(0)
摘要: 拷贝控制 一般来说对于拷贝我们有两种选择:使类的行为看起来像一个值或者像一个指针。 类的行为像一个值,意味着它有自己的状态。当我们拷贝一个像值的对象时,副本和原对象是完全独立的。 类的对象像指针的话,则为一种共享状态。当我们拷贝一个这种类的对象时,副本和原对象使用相同的底层数据。改变副本也会改变原对 阅读全文
posted @ 2020-11-28 21:06 LeeSCUT 阅读(84) 评论(0) 推荐(0)
摘要: 拷贝构造函数 在函数调用中,具有非引用类型的参数和具有非引用的返回类型时,返回值会被用来初始化调用方。其实就是因为这两种情况都是pass by value,会调用拷贝构造函数。 这也解释了为什么拷贝构造函数需要使用引用类型参数,如果是非引用类型参数,那么调用了这个构造函数就会使用pass by va 阅读全文
posted @ 2020-11-28 17:14 LeeSCUT 阅读(126) 评论(0) 推荐(0)
摘要: Effective C++阅读记录--前言(1) 定义的本质 Object(对象)的定义给编译器提供配置内存的地点说明。 function(函数)或者function template(函数模板)定义式为编译器提供函数本体(function body) 对象数组的初始化 C Array[10]; d 阅读全文
posted @ 2020-11-28 13:38 LeeSCUT 阅读(92) 评论(0) 推荐(0)
摘要: (一)计算法向量 看到法向量就觉得有点奇怪,对于一个点来说怎么会存在法向量?因此估计点法向量的思路是将一个点与其邻域内的点一起构建成一个平面,然后再计算这个平面在该点处的法向量。需要进行拟合的平面方程如下: A*x+B*y+C*z=0 A^2+B^2+C^2=1 (二)计算曲率 曲率是曲线弯曲程度的 阅读全文
posted @ 2020-06-16 16:44 LeeSCUT 阅读(2044) 评论(0) 推荐(0)