git
git远程仓库网址:https://github.com
张朝阳账户:zhangzhaoyang@chd.edu.cn 用户名zhzj0218,密码:一般密码
以将/d/gitproject/pycharm_python_and_pyqt中的文件同步到git中的zhzj0218下的pycharm_python_and_pyqt为例
[TOC]
查看分支状态git status
创建版本库git init 把当前的目录变成Git管理的版本库
git status 查看当前分支状态
git add . 把当前文件夹下的文件提交到暂存区
紧接着git commit -m “提交标签,如first proposed” 把暂存区提交到版本库
执行git status查看状态,确保工作区是干净的,没有需要提交的内容
(git log查看 ...
MySQL
安装
到官网进行安装。点击MySQL Installer for Windows下载安装包后一直next即可。
启动与停止
mysql开机默认启动。
在win+R运行services.msc,找到mysql右键操作。
在cmd中运行net start mysql80、net stop mysql80进行启动与停止。
客户端连接
方式一:直接使用mysql提供的命令行进行连接。开始找到MySQL Command Line Client-Unicode,进去输入密码操作。
方式二:先配置PATH环境变量C:\Program Files\MySQL\MySQL Server 8.0\bin。在任意cmd输入mysql -u root -p,输入密码操作。
MySQL数据库的好处
关系型数据库RDBMS,建立在关系模型基础上,由多张相互连接的二维表组成的数据库。格式统一,便于维护,使用SQL语言操作,使用方便。数据模型是数据库,可以创建多个表。
SQL
(1) SQL通用语法
(2) SQL分类
(3) DDL
查询数据库
12show ...
面向对象
explicit关键字,作为返回值时加上不调用拷贝构造函数。作为类关键字防止被拷贝。
多态父类指针指向子类对象
父类提供virtual 虚函数,子类对象实现
析构函数加virtual,可以调用子类的析构函数
构造函数前不能加virtual,因为构造函数执行后,虚表才出现
运算符重载
类中,++i比i++效率高,因为后者还要调用构造函数
工厂模式用父类指针作为返回值,在返回值创建子类对象
单体模式sizeof、_countof_tscanf_s( _T(“%d”), v1, _countof(v1));
sizeof 数据类型大小与数据大小相乘,实际的数据大小
countof 数据大小,实际上的数据数量
结构体对齐大小为4,1,8,按最大的对齐
如上,实际上为16。double占8,另外两个加起来用8
重载函数名一样,参数类型不同,参数数量不同
与返回值类型无关
使用const,发生重载。
const是常对象调用的。
菱形继承一个派生类D是由多继承产生的,它的多个基类B、C继承了同一个基类A。造成派生类D中具有多份A类的属性,属于一种不合理的现象
会让高层的基类在底层的派生类中 ...
智能指针
智能指针 c++11std::unique_ptr<T> :独占资源所有权的指针。当我们独占资源的所有权的时候,可以使用 std::unique_ptr 对资源进行管理——离开 unique_ptr 对象的作用域时,会自动释放资源。
std::unique_ptr 是 move-only 的。
12std::unique_ptr<int> uptr = std::make_unique<int>(200);std::unique_ptr<int> uptr1 = uptr; // 编译错误,std::unique_ptr<T> 是 move-only 的
std::unique_ptr 可以指向一个数组。
可以自定义 deleter。
12345678910{ struct FileCloser { void operator()(FILE* fp) const { if (fp != nullptr) { fc ...
c++20
语法糖语法糖是指计算机语言中添加的某种语法,这种语法对语言的功能并没有影响,但是更方便程序员使用。
C++也有很多语法糖,比如运算符重载、lambda表达式、auto类型推导等。这些语法糖可以让我们的代码更简洁、更易读、更高效。例如,下面两种写法是等价的:
12345678int sum = 0;for (int i = 0; i < 10; i++) { sum += i;}int sum = 0;for (auto i : {0,1,2,3,4,5,6,7,8,9}) { sum += i;}
c++11、20新特性大多数都是语法糖
c++20C++20有很多新的特性,其中最重要的四个是概念、范围、协程和模块。概念可以让我们定义泛型函数或类的约束条件,范围可以让我们更方便地操作容器和迭代器,协程可以让我们编写异步代码,模块可以让我们更高效地组织代码。除此之外,C++20还有一些其他的新特性,比如三向比较运算符、指定初始化、日历和时区功能等。
概念概念是一种用来约束模板类型的语法糖。我们可以用concept关键字 ...
引用
指针与引用引用必须要初始化。
指针会根据编译器不同而变化,32位4字节,64位8字节
引用根据被引用的数据类型变化
int*& 指针的引用 以指针来判断。
右值引用 c++11
左值:可以长时间保存,可以存在于=左边的值,可以取地址;
右值:临时值,不能存在于=左边的值,不可以取地址。
左值引用,实际上是取地址赋给新的变量。必须初始化。
常引用,用于引用部分右值,不可进行更改。实际上是使用一个临时变量与一块临时内存进行存储,必须初始化。可以引用左与右。
右值引用原理相近,临时内存的地址无法获取,但是可以对临时内存里面的内容进行修改。
12int&& v1 = 10;v1++;
右值引用是C++11新特性,之所以引入右值引用,是为了提高效率。如下面所示:
1234567891011121314151617181920212223242526272829303132333435363738394041class A{public: A(size_t N):m_p(new char[N]) { } A(con ...
hexo快速入门
安装安装node.js安装git安装hexo
新开一个文件夹,右键,在这里打开git bash
12npm install -g hexo-clinpm install --save hexo-deployer-git
配置github SSHssh可以免密的将本地的源码和资源上传到github,无需要每次都输账号和密码。
12cd ~ssh-keygen -t rsa -C "邮件地址"
在用户文件夹下生成了一个.ssh文件夹,进入,复制.pub文件中全部内容
打开github主页,点击个人设置,点击左侧的SSH and GPG keys,点击New SSH key
将id_rsa.pub复制的内容粘贴到key中,title随便起一个就行。
配置好用户名和邮箱
12git config --global user.name "xxx" #你的github用户名git config --global user.email "xxx@163.com" #填写你的github注册邮箱
写个人博客初始化12hexo init ...