- 博客(11)
- 收藏
- 关注
原创 ChatGPT4.0之使用c++20的concept实现编译期快排
SortableSortablerequires关键字是C++20引入的,用于定义concepts。Concepts是C++中的一种类型约束机制,用于指定模板参数必须满足的条件。它们提高了模板代码的可读性和健壮性,使得编译器能提供更准确的错误信息。requiresrequires关键字和concepts是C++20中引入的重要特性,它们极大地增强了模板的表达能力和类型安全性。通过为模板参数指定明确的约束条件,开发者可以编写更清晰、更健壮的泛型代码。哪里不会点哪里的感觉真不错啊。
2024-03-03 23:57:41 999
原创 ChatGPT 4.0使用之论文阅读
对于不介意看英文的同学来说是一个很不错的工具,只可惜对中文的支持还是比较欠缺,当然这个不是插件的问题,而是GPT本身对中文就不够友好,希望之后的版本可以加强一下这方面吧。
2024-03-02 13:51:13 3954
原创 c++中std::hash的以及万能hash使用方法
首先是标准库中的std::hash函数,对于内置的类型,标准库中是已经提供了的(包括std::string),但是若是自己自定义的类型想要求其哈希值的话,就需要自己定义其哈希值的求值方式。下面是简单示范#include <map>#include <unordered_map>#include <unordered_set>#include <iostream>using std::cout;using std::endl;class My
2020-07-11 13:24:41 27496
原创 std::bind的几种用法
#include <queue>#include <map>#include <iostream>#include <functional>//adapter测试using namespace std::placeholders;using std::cout;using std::endl;struct Functor : public std::binary_function<int, int, void> //比较标准的f
2020-07-10 21:21:30 769
原创 c++中&& 和 ||的运算顺序及次数
结论:两者都是从左到右进行运算,且一旦能够得到结果,右边的表达式就不会被调用。验证如下:bool expr1(bool lhs){ cout << "expr1 called" << endl; return lhs;}bool expr2(bool rhs){ cout << "expr2 called" << endl; return rhs;}int main(){ expr1(1 > 2) &
2020-06-05 11:24:37 1859
原创 模板函数中的显式实例化和显式具体化
当我们定义了一个模板函数时,每当我们调用这个函数时,这个模板就会为我们生成函数定义,但是我们处理某些例子时可能需要我们进行另外一种操作,这时就需要显式具体化了(explicit specialization),先看个例子吧假设我们定义了一个加法的函数模板template <typename T>T add(T a, T b){ return a + b;}当我们使用时传入的数据类型是内置类型,如int,double,float等,这个是没有问题的。假设我现在定义一个复数类型,且
2020-06-01 15:29:31 1145
原创 vs中配置OpenGl环境
首先用到的ide是vs2017版,新点旧点差别不是很大。用到的库有GLFW,GLEW,glm。参考的是the cherno的教程(B站有他的搬运视频)。首先是配置GLFW,让我们可以有一个可视化界面。这个可以在GLFW 的官网里下载https://www.glfw.org/download.html,点进去后下载的是32位的二进制文件,网站打不开或者下载不了的话在我的百度网盘里有链接:https://pan.baidu.com/s/1DBsvGgcG0OzsNzZkctqAoQ提取码:rzlu接下
2020-05-25 19:30:40 897 2
原创 c++中如何使用可变参数的函数(学习笔记)
在c++中我们需要同种函数拥有不同种的功能时,首先想到的函数重载,但是重载种类比较多时我们会使用模板函数(或者是模板函数重载以及模板函数的具体化)来帮助我们更加泛化,但这些方法的特点是函数参数的个数是确定的,假如我们需要参数个数是可以动态变化的话,上面的几个方法就不够用了。这时我们就可以使用variadic template以及initializer_list来解决这个问题。用print函数来演示上述两种方法void print() {}template <typename T,typename
2020-05-09 23:36:01 433
原创 C/C++中#include的作用及用法,以及其中的预处理指令
在学习c++的过程中,我们一定会及其频繁的使用#include这个指令,但是大多数人包括我在初学的时候也只是看书上或者老师说这是包含头文件的预处理指令,有这个你才能进行编程。当然,这个语句及其简单甚至我们不需要过多的理解就能直接用,也可以用的非常顺手,但是随着学习的深入总是会遇到一些与头文件有关的错误,这时就需要我们对#include这个指令有一个直观的了解。这个指令的作用非常简单,就是复制粘贴...
2020-05-05 23:14:58 4765 1
原创 信号与系统中关于傅里叶的几种变换(学习笔记)
信号与系统中关于傅里叶的几种变换简介时域连续连续周期连续非周期时域离散周期非周期证明简介这篇文章是参考奥本海姆的Signals and Systems和B站上西电的信号与系统这门课,字母的选择可能会与视频里的有些许的差别。这里的讨论主要是对几个基本公式的简易推导。先有一个简单的结论吧,就是时域离散,频域周期时域周期,频域离散然后这个结论会在接下来的几个式子中得到证明。时域连续傅里叶发...
2020-05-01 11:25:27 4252
转载 三元组顺序表稀疏矩阵加法实现A+B,不增加A,B之外的储存空间,O(m+n)的时间复杂度
三元组顺序表加法实现A+B,不增加A,B之外的储存空间,O(M+N)的时间复杂度参考链接先定义需要用到类接下来便是算法的主体部分了(略微冗长)方法二 (效率较低的版本)参考链接链接: https://blog.csdn.net/weixin_34355881/article/details/85808635.#这个算法我是看这个博客上的,不过那里是图片,使用c实现,需要看原代码的话是在这里...
2020-04-14 21:19:44 2622
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人