自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(151)
  • 收藏
  • 关注

原创 3.2~3.2 线性方程组的解法

高斯高斯消元法出现 0=0,有无穷多解或者无解。从行图和列图的角度描述有唯一解的情况。从行图和列图的角度描述有无解的情况。从行图和列图的角度描述有无穷多解的情况。如果第一次消完以后,第二主元为0,那么可能就需要调换2 和3行。n个方程有n个主元,方程组有唯一解。3.2 消去矩阵上图上三角阵的三个元素就是3个主元。可逆矩阵的充分必要条件是,矩阵对应的行列式不等于0,而上三角矩阵对应的行列式,也是上三角行列式,就等于对角线上各数的乘积。所以要上三角行列式不等于0,就需要对角线上

2021-10-29 14:02:27 170

原创 1.5~2.3 矩阵与向量乘法,线性方程组的矩阵表示,向量的线性相关性,线性方程组的行图和列图

1.5 向量的线性组合两个不共线的向量的全部的线性组合构成一个平面。两个共线的向量的全部线性组合是一条直线。三个不共面的向量的全部线性组合是整个三维空间。任何一个向量(x, y, z) 它都可以表示成 u, v,w的线性组合。w 在 u, v张成的这张平面上。所以u v w的线性组合还是 u, v张成的这张平面。1.6 向量的点积,长度1.7 向量的夹角1.8 两个不等式2.1 矩阵与向量的乘积...

2021-10-28 00:21:28 306

原创 shell jd处理json,curl post

#!/bin/bashdata='{"a": "xxxx"}'a=20data=`echo $data| jq 'to_entries | map(if .key == "a" then . + {"value":'$a'} else . end ) | from_entries'`data=`echo $data | sed 's/ //g'`echo $datacurl -X POST \-H

2021-04-28 21:24:53 314

原创 python 多进程 pool queue

python处理cpu密集型任务时,用多线程会好点from multiprocessing import Pool, Managerimport os, time, randomn = 100def write(q): print('Process to write: {}'.format(os.getpid())) time.sleep(random.random()) q.put(0) print('{}/{}'.format(q.qsize(), n))

2021-04-16 15:16:45 290

原创 STL 关联容器

1. 映射最大的优点就是找东西快,检索效率高,因为内部的平衡有序二叉树(红黑树)。从红黑树的任何一个节点往下看,左右子树的层级可以差一层但不能超过一层。找1的话,从根节点往下看,1小于3,找左子树,1又小于2,找左子树,找到1。只找了两次,这就不是线性级的效率,而是对数级别的效率,一砍砍一半。映射容器中的节点们的物理模型是红黑树,每个节点都是pair对象,pair对象有first和second构成。迭代器it中的当前指向,指向的是容器的节点,*it是节点的引用, 而映射容器中的每个节

2021-03-02 11:16:40 147

原创 STL 适配器容器 之 栈、队列、优先队列

1. 栈底层容器可以是 vector, deque, list 等成员函数中,左边都是栈提供的成员,右边调的是底层容器提供的成员函数。1.1 栈的底层实现屏蔽调底层容器的头部的添加/删除就改造成了栈class D = deque<T>, 代表缺省的底层容器是deque, 向栈里添加元素其实是添加到双端队列当中了。#include <iostream>#include <list>#include <vector>#include

2021-03-01 20:39:59 131

原创 STL 线性容器 之 双端队列、列表

1. 双端队列和向量的差别2. 列表在任何位置添加、删除数据都很方便,但不支持下标访问这里的列表就是之前这篇博客写的链表,下面利用<list>实现下几个那篇博客里没有实现的功能unique : 针对的是连续重复出现的数据排序:之前那个全局的sort可以对链表进行的排序,只不过需要交换链表中数据的位置。在连续的数据存储区,进行数据的排序,必须要交换数据的位置。链表排序也可以交换数据的位置,但还有更简单的做法就是更改指针的指向。所有链表提供了两个自己的排序成员函数,并且没有卡范

2021-03-01 18:29:53 143

原创 STL 线性容器 之 向量容器、向量容器迭代器

1. 成员函数容量就是最多可以放多少个。容量反应的是 向量容器维护了多少内存,大小反应的是已经占据了多少内存。向量只提供了尾部增加和删除2. 初始化给向量后面添加新元素时,如果向量维护的内存空间满载,而且其后的内存空间也已经被占用,那么就会自动开辟新的足够大的连续内存空间,把原来的数据拷贝过来,然后释放掉原内存空间。3. 迭代器的使用...

2021-03-01 12:11:25 179

原创 STL 标准模板库概述

1. STL概念和作用2. 数组结构和链表结构3. 十大容器概述4. 迭代器

2021-02-27 18:26:15 122

原创 STL 利用模板自制链表容器

#include <stdexcept>using namespace std;// list<T>代表双向链表类,链表里的每个节点是T类型的数据template <class T> class list {public: // 缺省构造, 空链表 list():m_head(NULL), m_tail(NULL){} // 拷贝构造, 用一个存在的链表拷贝构造一个新的链表 list(list const that):m_head(

2021-02-26 23:21:46 267

原创 STL 模板典型错误

1. 嵌套依赖#include <iostream>using namespace std;class A{public: class B{ public: void foo(){ cout << "zhe e xin" << endl; } };};// 函数模板template<class T> void Func(){ // A::B b; // 嵌套

2021-02-23 22:12:38 290

原创 STL 类模板的特化、类型形参缺省、数值形模板参数、模板技巧

1. 全局特化2. 局部特化3. 类型形参缺省4. 数值形的模板参数5. 模板技巧

2021-02-23 15:55:12 387

原创 STL 类模板

1. 类模板的声明2. 类模板的使用3. 类模板的静态成员4. 类模板的递归实例化

2021-02-22 22:19:56 237

原创 STL 函数模板

函数模板并非真正的函数1. 函数模板的定义<> 表示类型参数表2. 函数模板的使用3. 函数模板的分析4. 实例化函数模板的条件

2021-02-20 17:38:05 217

原创 STL 模板起源

1. C++ 为静态类型语言虽然类型安全(可以指定类型)由于数据类型的不一致,把近乎相同的函数写了三遍2. 宏可以摆脱数据类型的限制蓝色部分就是预编译时做的纯文本替换,但cx和cy代表的是数组首元素的地址, 而不是比较“world” 和 “hello”首字母的assic值结合上面两个程序的优点, 搞一个类型安全,代码通用的函数框架3. 利用宏构建通用函数框架其实本质就是利用宏让与编译器来实现一些函数, 而不用手动去写#include <iostream>

2021-02-19 17:25:14 192

原创 Qt 网络聊天室项目

1. 需求分析2. 概要设计2.1 服务器概要设计2.2 客户端概要设计3. 详细设计3.1 服务端的伪代码QTcpServer::listen()类似于TCP编程中的bind(将套接字和ip、端口号 绑定在一起)QHostAddress::Any 是 0.0.0.0 代表本机任意网卡的地址3.1.0 创建TCP服务器3.1.1 响应客户端请求newConnection()信号触发自定义槽函数onNewConnection(), 槽函数中会调用 nextPendin

2021-02-19 15:20:06 5151 1

原创 Qt Sqlite数据库

1. 数据库简介2. Sqlite数据库2.1 Sqlite工作原理2.2 Sqlite主要特性ACID: 原子性,一致性, 合理性,持久性2.3 在ubuntu上安装Sqlite数据库$ sudo apt-get install sqlite3 3. Sqlite的操作指令3.1 自身配置和格式控制相关指令$ sqlite3SQLite version 3.11.0 2016-02-15 17:29:24Enter ".help" for usage hints

2021-02-18 15:57:47 244 1

原创 Qt 事件处理机制

1. 什么是事件2. 如何处理事件3. 绘图事件4. 定时器事件5. 鼠标和键盘事件

2021-02-17 19:47:32 311

原创 Qt 创造器 qtcreator

Qt 创造器 这个继承开发环境几乎涵盖了之前所有工具(qmake., assistant, designer等)1. 构建框架选默认就好指定工程目录指定主窗口类的名字自动生成了大部分固定的代码(搭好了框架)直接run除了问题, 需要先把shadow去掉calculatordialog.h短视声明替代 #include “ui_calculatordialog.h”, #include "ui_calculatordialog.h"这里被写到源文件当中explicit 修.

2021-02-13 09:51:12 218

原创 Qt 设计师 designer 登录对话框案例

1. 通过设计师生成ui文件

2021-02-10 10:06:25 489

原创 Qt 设计师 designer 加法器案例

1. 通过设计师生成ui文件2. 将ui文件转为c++头文件并使用这里生成ui_CalculatorDialog.h是为了更清楚整个构建过程, 一般make会自动做这一步下面的代码是组合的方式来构建的。(注意要写析构函数销毁ui对象)ui_CalculatorDialog.h......// Ui_CalculatorDialog 这个类可以来实例化父窗口对象class Ui_CalculatorDialog{public: QHBoxLayout *horizontal

2021-02-09 18:48:25 411

原创 Qt 面向对象编程

1. 基于对象的Qt编程的缺点这样构建的Qt框架中的功能会受到很大限制。Qt中的控件仅仅能表现缺省的外观和行为,很难扩展出定制化的特性,很多Qt类当中的保护成员和保护方法在类的外部不能直接使用。并且无法利用多态机制。2. 面向对象方法 实现 加法计算器把计算器窗口整体看成一个大的对象,里面的图形控件可以看成对象的成员变量。因为是计算器窗口,所以它需要继承QDialog这样的窗口类,使用里面的功能。CalculatorDialog.h#ifndef __CALCULATORDIALOG

2021-02-09 15:58:29 796

原创 Qt 父窗口、信号和槽

1. 父窗口一般界面简单用 QDialog界面复杂用 QMainWindow设置位置的 x, y, 对于父窗口是相对于屏幕的,对于父窗口里的控件是相对于父窗口的。设置大小时,如果父窗口里的控件大小超出父窗口的话,超出部分是不能正常显示的。通过new操作符创建窗口对象时,指定其停靠的父窗口,这样的对象可以不显示的去写delete操作。#include <QApplication>#include <QLabel>#include <QPushButt

2021-02-08 20:44:16 322

原创 Qt 基础

1. Qt简介2. Qt环境与工具链1. 下载Qt 5.9.1 版本的安装包(本质上是一个可执行程序)https://mirrors.tuna.tsinghua.edu.cn/qt/archive/qt/5.9/5.9.1/2. 给可执行权限, 并安装,$ ls -l qt-opensource-linux-x64-5.9.1.run$ chmod +x qt-opensource-linux-x64-5.9.1.run $ ls -l qt-opensource-linux-x6

2021-02-07 15:17:23 162 1

原创 C++ I/O流

1. 主要的I/O流类2. 格式化I/O2.1 格式化函数2.2 流控制符3. 字符串流istrstream 和 ostrstream 可能要过时了,提出了新的方法叫 istringstream 和 ostringstream4. 文件流后面最好加: ofs.close();后面最好加: ofs.close();...

2021-02-05 15:05:03 67

原创 C++ 异常机制

1. 传统的错误处理1.1 程序开发中常见的错误1.2 传统错误处理方式2. C++的异常机制2.1 正常流程2.2 异常流程#include <iostream>#include <cstdio>using namespace std;class A{public: A(void){ cout << "A类构造" << endl; } ~A(void){ cout &lt

2021-02-05 14:10:55 118

原创 C++ 多态场景下使用 typeid,dynamic_cast

1. typeid操作符1.1 typeid.name()#include <iostream>#include <typeinfo>using namespace std;int main(void){ int i; cout << typeid(int).name() << "," << typeid(i).name() << endl; int* a1[10]; int (*a2)[10];

2021-02-04 21:51:57 442

原创 C++ 多态

1. 函数的重写和多态的概念virtual 修饰基类成员函数, 子类中对应函数自动变虚。没有virtual, 就没有多态向上造型的产物:指向子类对象的基类类型指针,引用子类对象的基类类型引用。通过指向子类对象的基类类型指针调用虚函数时,它会根据该指针实际所指向的目标对象类型去调用(而跟指针类型没有关系)。2. 虚函数覆盖的条件特殊的是析构函数可以变虚#include <iostream>#include <cstring>using namespace

2021-02-04 19:39:24 165

原创 C++ 多重继承

1. 多重继承2. 名字冲突问题3. 钻石继承和虚继承

2021-02-03 23:11:24 161 1

原创 C++ 继承

1. 继承的概念子类可以继承基类, 基类去派生子类Human 是基类,Student和Teacher是子类2. 继承的语法#include <iostream>using namespace std;class Human {// 人类(基类)public: // 常引用才能引用右值 Human(const string& name, int age):m_name(name), m_age(age){}; void eat(const s

2021-02-02 17:17:04 218

原创 C++ 操作符重载

1. 双目操作符重载1.1 双目操作符1.2 运算类双目操作符 的 重载友元函数可以写在类的内部,但本质还是友元函数。#include <iostream>using namespace std;class Complex{public: Complex(int r, int i):m_r(r),m_i(i){} void print(void)const{ cout << m_r << "+" << m_

2021-02-01 22:09:29 172

原创 C++ 单例模式、饿汉和懒汉

1. 为什么需要单例模式2. 什么是单例模式3. 如何创建单例模式3.1 禁止类外部创建对象(私有化构造函数)单例模式中对象的唯一性是由对象的实现者保证的。通过私有化构造函数 和 拷贝构造函数(缺省的构造函数都是公有的)来禁止在类的外部创建对象。其中,拷贝构造函数声明就好,不需要写具体实现,它是有缺省实现的。声明它只是为了防止拷贝构造函数被调用,并不会真的去使用它。3.2 类自己维护其唯一对象(私有静态成员变量)因为如果不加 static, 编译器编译时是要确定类的大小的,类的大

2021-01-31 12:47:50 655

原创 C++ 静态成员

1. 静态成员的作用1.1 为什么要有静态成员静态成员:局限在类中使用的全局资源2. 静态成员变量2.1 语法普通成员变量的定义和初始化是在构造时完成的。而静态成员需要在类的外部单独进行定义和初始化。实例化出来的对象只有非静态的的成员变量, 没有静态的。静态成员变量是类中的全局资源,并不属于对象。但对象是可以使用类中的静态变量的,从而实现对象间的数据共享。静态变量和全局变量类似,被存放在全局区,可以把静态成员变量理解为限制在类中使用的全局变量。静态成员变量也要收到类的访问控制限定符

2021-01-29 15:44:35 155

原创 C++ 拷贝构造和拷贝赋值、简单String 类的实现

用编译器自动分配的缺省拷贝构造函数已经可以满足绝大部分的场景。今天主要讲编译器提供的缺省拷贝构造函数无法满足的场景。1. 深拷贝和浅拷贝1. 浅拷贝2. 拷贝赋值3. String 类的实现4. 忠告和建议...

2021-01-29 11:58:51 262

原创 shell 用别名杀快速死指定进程

$ cat ~/kill.sh #!/bin/bashname=$1ps -ef| grep $name| awk -F ' ' '{print $2}'| xargs kill -9moonx@moonx:~ $ cat ~/.bashrc....alias t_kill="bash ~/kill.sh"moonx@moonx:~ $ t_kill $(程序中的关键字)

2021-01-29 10:32:22 97

原创 C++ 析构函数、对象的创建和销毁过程

1. 什么是析构函数1.1 语法~在C中是按位取反的操作。析构函数是对象销毁时,自动被调用的,完成对象动态资源的清理操作。这里的动态资源指的是,只是通过对象里面的成员所维护的,不是对象本身的资源。需要手动销毁清理的。不能被重载,所以一个类只有一个析构函数。2. 析构函数的应用第二句中离开作用域的意思应该就是,离开了对象定义时所在的{ }。而不是对象所在函数结束时(即 return时)。#include <iostream>#include <unistd

2021-01-28 18:27:52 3595

原创 C++ 常成员函数、mutable关键字

1. 常函数(只针对普通成员函数)const属性只针对普通成员函数。构造,析构函数,以及C中的一些全局函数,都是没有const属性的一旦加上const属性,就不能在成员函数中修改成员变量。如果只希望某个成员函数只是访问成员变量,但不要修改,最好加上const属性。#include <iostream>using namespace std;class A{public: A(int data = 0):m_data(data){} // 编译后: void prin

2021-01-28 15:52:12 378

原创 C++ this指针

1. this指针的由来构造函数和析构函数中的this指针指向正在创建的对象普通成员函数中,this指向指向该函数的调用对象1.1 代码示例#include <iostream>using namespace std;class User{public: // 通过构造函数的参数,完成对成员变量的初始化操作。 // 而构造函数中的this指针指向正在创建的对象 User(const string& name, int age):m_name(n

2021-01-28 13:59:47 172

原创 C++ 构造函数的初始化表

1. 构造函数的初始化表1.1 语法形式1.2 代码示例#include <iostream>using namespace std;class Student {public: // 1. 先把成员变量定义出来,然后再初始化 // Student(const string& name, int age){ // m_name = name; // m_age = age; // } // 2. 定义成员变

2021-01-27 23:59:16 295

原创 C++ 构造函数的重载、缺省构造函数、类型转换构造函数、拷贝构造函数

1. 构造函数的重载2. 缺省构造函数只要对象被创建,就会调用构造函数#include <iostream>using namespace std;class A {public: A(void){ cout << "无参构造函数" << endl; m_i = 0; }private: int m_i;};class B {public: int m_j; // 基本类型

2021-01-27 18:57:28 912

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除