- 博客(8)
- 资源 (9)
- 收藏
- 关注
原创 C++内存管理-笔记
本文主要内容为 侯捷先生 的《C++内存管理》课程个人学习记录,并非完全照搬讲义,有机会请读者看原视频。内存分配方式无论是哪种方式,最终使用的都是c语言底层的malloc。C++ new 关键字编译器将 new关键字翻译成 分配内存和调用其构造函数两部分。分配内存使用运算符 new,如果类本身有自定义 new运算符,则调用自定义版本,否则使用全局的 ::operator new,同理...
2019-04-26 16:13:53 354
原创 C++ Move与Forward实现原理
这部分可重点参考《C++ Primer 》第5版 P608-P614,写的很透彻。Forward的使用#include<iostream>#include<string>#include<vector>using namespace std;template<typename T>void print(T& t) { c...
2019-04-26 12:39:24 5209 4
原创 C++新标准C++11&14-笔记
本文主要内容为 侯捷先生 的《C++新标准C++11&14》课程个人学习记录,并非完全照搬讲义,有机会请读者看原视频。 语法部分
2019-04-25 22:26:09 1445
原创 C++ type_traits实现原理
以 is_void 为例分析,源代码选择vs2017库文件#include<iostream>#include<type_traits>int main(){ std::cout << std::is_void<void>::value;// 1 std::cout << std::is_void<int>::va...
2019-04-24 22:23:47 1041
原创 STL标准库与泛型编程-笔记
本文主要内容为 侯捷先生 的《STL标准库与泛型编程》课程个人学习记录,并非完全照搬讲义,有机会请读者看原视频。STL结构泛型 forc++11之后,提供了泛型for,更方便的用在容器遍历。std::vector<int> v = {1,2,3};for (auto &it : v){ std::cout << it <<std::e...
2019-04-24 20:28:09 756
原创 C++ typename与非类型类模板参数
typename 的特殊用法C++ STL源码中有如下用法:template<class T>void foo() { typedef typename T::iterator iterator_type; // ...}这里 typename 主要作用是告诉编译器 “ 这是个类型,请放行通过!”,因为**T:
2019-04-24 14:28:27 442
原创 C++11给Non-static Data Member赋值
class Widget { private: int x{ 0 }; // fine, x's default value is 0 int y = 0; // also fine int z(0); // error! 这会与函数声明冲突};这里的一个背景是C++11允许了类在声明的时候直接给Non-static Data Member复值。而在C++98,你要...
2019-04-18 10:53:28 5660
原创 四元数,四叉树的理解
四元数四元数是复数向三维的扩充扩展,使用复数乘法来实现旋转。具体参考如下:Understanding QuaternionsUnderstanding Quaternions 中文翻译四叉树其实就是将二维空间使用矩形大小来表示,每个结点分为 0:LeftUp, 1:LeftDown, 2:RightUp, 3:RightDown,然后递归存储数据,一般数据存储在叶子节点,也可以进行改进,...
2019-04-09 22:44:18 473
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人