学习笔记
文章平均质量分 61
夏风之羽
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Effective C++学习笔记:shared_ptr 析构剖析
例子是这样的,使用 shared_ptr 创建一个链表:class Node {public: int x; Node(int xx):x(xx){} ~Node() { cout << "Node destructor " << x << endl; } shared_ptr<Node> next;};void main() { shared_ptr<Node> sp1(new Node(1)); shared_ptr<原创 2021-06-01 16:40:03 · 1339 阅读 · 0 评论 -
拷贝构造函数以及运算符重载函数参数形式分析
先来看看它们的标准形式,类名为Test。拷贝构造函数:Test(const Test &t) { /* ... */ }赋值运算符重载函数:// 如果想要支持连续赋值(A=B=C) 返回值类型改为 Test&void operator=(const Test &t) { /* ... */ }不禁让人产生这样一个疑问,一定得是 const Test& 吗?这样行不行呢:// 假设编号1~4Test(const Test &t) { /* ... *原创 2021-05-29 16:14:54 · 277 阅读 · 0 评论 -
Effective C++学习笔记:编译器默认生成的赋值运算符重载函数被删除的三种情况
以下代码测试了编译器默认生成的赋值运算符重载函数被删除的三种情况,并测试了这时候可以人为地声明。为什么创建了namespace,可以看笔者的另一篇博客,C++学习过程中的代码/文件结构推荐namespace del_copy_assign { class Data1 { public: const int a; Data1(int aa=2) :a(aa){} void operator=(const Data1 &d1) { cout << "assign oper原创 2021-05-29 15:45:49 · 530 阅读 · 2 评论 -
C++学习过程中的代码/文件结构推荐
在学习C++的过程中,常常遇到这样一个场景,需要写很多简单的测试代码。这些测试代码通常比较短小,百行以内。下面介绍几种代码/文件结构。1. 每段测试代码都新建一个文件这种方式很容易创建数十个文件。这样运行代码的时候不太方便(编译和运行需要重设),而且不容易进行对比。但好处是代码之间不会相互影响,不存在重名的问题。2. 全部写在同一个文件内部这种方式会慢慢形成一个很大的文件,省去了多个文件带来的不便,而且比较容易进行对比,main函数里可以调不同代码统一测试。但这种方式有一个缺点,那就是重名的问题。写原创 2021-05-29 15:27:01 · 403 阅读 · 0 评论 -
char **和char* []区别,char *和char []区别
起因今天敲代码想获取一下 linux 系统的环境变量。拍脑袋瓜一想,平常char *argv[], char **argv都写过啊。于是乎,就写了一个extern char *environ[];#include <stdio.h>#include <stdlib.h>//extern char *environ[];extern char **environ;int main(int argc, char *argv[]){ int i = 0; while (原创 2021-02-27 23:53:47 · 4566 阅读 · 0 评论 -
傅里叶变换学习笔记
在学习3Blue1Brown关于傅里叶变换的视频后,想要尝试重复他所进行的实验。本文中的代码仅使用了numpy库和matplotlib库信号的波形图先从最简单的信号波形图开始。时间区间以及信号向上平移的默认值采用了视频中相应的近似值。fl 是频率的列表,表示这些频率的余弦信号的叠加;b 是每个余弦信号向上平移的距离;l,r 为时间范围。def drawSignal(fl, b=1.1, l=0, r=4.5): x = np.linspace(l, r, 1000) y = np.ze原创 2020-12-02 23:11:24 · 784 阅读 · 2 评论
分享