C++
Little_Fall
冲冲冲!
展开
-
c++:输出高维 vector 的 shape 并支持结构化绑定
来自学弟的问题:一个vector > v, 写一个模板函数Size(), 然后可以直接auto [n,m,k] = Size(v)获取这个高维矩阵的各维维度?原创 2022-11-27 14:42:11 · 713 阅读 · 1 评论 -
C++ debug 系列:手动调用析构函数
^^_原创 2022-10-27 17:55:53 · 1982 阅读 · 0 评论 -
【小笔记】奇异递归模版模式CRTP:优雅的静态分派
CRTP 可以以模版继承的方式实现静态分派。与纯靠模版实现静态分派的方式相比:更加优雅,方便编码与实现,更好理解;或者说,CRTP 本身就是用模版实现分派的一种良好实践。与多态相比:编程模式近似。缺点:不能实现动态分派,原因:无法定义一个 Base * b;,因为没有指定模版参数。代码大小可能会因为模版生成而膨胀。优点:省略虚表跳转的开销。例子:#include<iostream>template <typename T>class Base {public原创 2021-10-13 17:30:09 · 144 阅读 · 0 评论 -
【小题解】字符串排列
Leetcode 剑指 Offer 38爷青回。next_permutation 60ms使用库函数遍历每个排列。class Solution {public: vector<string> permutation(string s) { vector<string> result; sort(s.begin(), s.end()); do { result.push_back(s);原创 2020-09-12 12:55:31 · 169 阅读 · 2 评论 -
【笔记】C++中的智能指针
参考自《effective morden c++》裸指针的缺点无法知道指向的是单个对象还是一个数组.无法知道使用完之后是否需要析构,即是否拥有指向的对象.无法知道应当如何析构(使用 delete 还是专门的函数)无法知道单个析构还是数组析构.不能保证只析构一次。少了会导致内存泄漏,多了是UB.无法检查指针空悬.std::unique_ptr足够小、足够快,几乎和裸指针相同....原创 2020-03-06 19:01:25 · 217 阅读 · 0 评论