- 博客(87)
- 收藏
- 关注
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 一文掌握git基本使用
文章目录版本控制版本控制的功能集中式版本控制分布式版本控制Git 简介Git 的优势Git 的结构Git 安装在Linux上安装Git在windows上安装Git版本控制版本控制的功能协同修改可以多人并行不悖地修改服务器同一个文件数据备份不仅保存目录和文件的当前状态,还能够保存每一个提交过的历史状态版本管理在保存每一个版本的文件信息的时候要做到不保存重复数据,以节约存储空间,提高运行效率。这方面 SVN 采用的是增量式管理的方式,而 Git 采取了文件系统快照的方式权限控制对团队中参与
2020-10-13 22:36:23
334
原创 ubuntu中anaconda使用conda连接网络出现错误
首先修改.condarc的内容gedit ~/.condarc将内容改为:channels: - http://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/ - http://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/ - http://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/msys2/ - http://mirr
2021-07-28 14:50:10
589
原创 Leetcode 54.螺旋矩阵
文章目录题目描述解题题目描述给你一个 m 行 n 列的矩阵 matrix ,请按照 顺时针螺旋顺序 ,返回矩阵中的所有元素。解题首先设定上下左右边界其次向右移动到最右,此时第一行因为已经使用过了,可以将其从图中删去,体现在代码中就是重新定义上边界判断若重新定义后,上下边界交错,表明螺旋矩阵遍历结束,跳出循环,返回答案若上下边界不交错,则遍历还未结束,接着向下向左向上移动,操作过程与第一,二步同理不断循环以上步骤,直到某两条边界交错,跳出循环,返回答案class Solution {
2021-07-26 20:38:54
324
原创 ubuntu重装显卡驱动
因为电脑重启之后,屏幕分辨率变小,且无法改变,尝试了各种方法之后发现应该是显卡驱动崩了,重装过程如下:一、准备工作1、使用以下命令lspci | grep -i nvidia # 查看显卡型号sudo dpkg --list | grep nvidia-* # 查看驱动版本2、下载显卡驱动在因伟达官网下载对应版本的驱动3、屏蔽开源驱动 nouveausudo gedit /etc/modprobe.d/blacklist.conf添加以下内容保存:blackl
2021-07-21 18:14:02
5599
原创 Ubuntu系统安装Anaconda3
1、下载Anaconda法1:在Anaconda官网下载,比较费时;法2:在清华大学开源软件镜像站下载,如图所示2、安装Anaconda1、在文件下载的目录下打开终端2、运行.sh文件bash Anaconda3-5.2.0-Linux-x86_64.sh3、进入注册信息页面,输入yes;4、阅读注册信息,然后输入yes;查看文件即将安装的位置,按enter,即可安装5、安装完成后,收到加入环境变量的提示信息,输入yes6、重启终端,即可使用Anaconda3;7、若在终端输入py
2021-07-13 17:05:44
6718
原创 Leetcode92. 反转链表 II
题目描述给你单链表的头指针 head 和两个整数 left 和 right ,其中 left <= right 。请你反转从位置 left 到位置 right 的链表节点,返回 反转后的链表代码/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode() : val(0), next(nullptr) {} *
2021-07-05 20:11:40
88
原创 Linux网络编程基础API
文章目录概述socket地址API主机字节序和网络字节序通用socket地址专用socket地址概述本文将从三个方面讨论Linux网络API:socket地址API。socket最开始含义是一个IP地址和端口对(ip, port)。它唯一确定了TCP通信的一端,称为socket地址socket基础API。socket的主要API都定义在sys/socket.h头文件中,包括创建socket、命名socket、监听socket、接受连接、发起连接、读写数据、获取地址信息、检测带外标记,以及读取和设置
2021-07-02 11:07:40
157
原创 多线程基础
文章目录线程概述创建线程线程函数创建线程线程退出线程回收线程回收函数回收子线程数据线程概述线程是轻量级的进程(LWP:light weight process),在 Linux 环境下线程的本质仍是进程。在计算机上运行的程序是一组指令及指令参数的组合,指令按照既定的逻辑控制计算机运行。操作系统会以进程为单位,分配系统资源,可以这样理解,进程是资源分配的最小单位,线程是操作系统调度执行的最小单位。先从概念上了解一下线程和进程之间的区别:进程有自己独立的地址空间,多个线程共用同一个地址空间线程更加
2021-06-27 10:41:12
308
1
转载 C/S模型-TCP
文章目录概述server代码概述下图是基于TCP协议的客户端/服务器模型的一般流程建立连接过程:服务器调用socket()、bind()、listen()完成初始化后,调用accept()阻塞等待,处于监听端口的状态,客户端调用socket()初始化后,调用connect()发出SYN段并阻塞等待服务器应答,服务器应答一个SYN-ACK段,客户端收到后从connect()返回,同时应答一个ACK段,服务器收到后从accept()返回。数据传输过程:全双工的通信服务,但是一般的客户端/服务器程序的流
2021-06-03 13:01:46
281
原创 IP协议详解
文章目录IP服务的特点IPv4头部结构IP分片IP路由IP服务的特点IP协议为上层提供无状态、无连接、不可靠的服务无状态是指IP通信双方不同步传输数据的状态信息,IP数据报的发送、传输和接受都是相互独立、无上下文关系的。最大的缺点是无法处理乱序和重复的IP数据报。接收端的IP模块只要收到了完整的IP数据报(如果是IP分片的话,IP模块先重组),就将其数据部分上交给上层协议。虽然IP数据报头部提供了一个标识字段用以唯一标识一个IP数据报,但是这是为了处理分片和重组,而不是用来指示接收顺序。无连接是指
2021-05-28 14:36:20
614
原创 ubuntu18.04配置PCL
文章目录安装依赖项安装安装依赖项sudo apt install cmake libeigen3-dev libboost-all-devsudo apt-get install libflann1.9 libflann-dev注意:很多文档都是sudo apt-get install libflann1.8 libflann-dev但是会发现显示无法定位包libflann1.8。后来在Ubuntu packages上面看到ubuntu 18.04 bionic对应的版本是libflann1.
2021-05-25 21:06:28
359
原创 TCP/IP协议族
文章目录TCP/IP协议族体系及主要协议数据链路层网络层传输层应用层封装分用TCP/IP协议族体系及主要协议数据链路层数据链路层实现了网卡接口的网络驱动程序,以处理数据在物理媒介上的传输。数据链路层常用的两个协议是ARP协议(地址解析协议)和RARP协议(逆地址解析协议)。它们实现了IP地址和物理地址(通常是MAC地址)之间的相互转换。网络层使用IP地址查找主机,而数据链路层使用物理地址查找主机。网络层必须将目标机器的IP地址转换为物理地址,才能享受到数据链路层的服务,这就是ARP的用途。RA
2021-05-19 23:30:13
201
2
原创 ubuntu安装VTK和QT插件
文章目录1、安装ccmake 和 VTK 的依赖项2、下载VTK-8.2.0库3、配置VTK4、编译安装1、安装ccmake 和 VTK 的依赖项sudo apt-get install cmake-curses-guisudo apt-get install freeglut3-dev2、下载VTK-8.2.0库官方网址:https://vtk.org/download/选择合适的版本进行下载,解压到VTK文件夹下,再新建文件下名为build3、配置VTK在build文件夹下打开终端,输
2021-05-19 16:10:46
2457
2
原创 QT中无法输入中文注释
首先安装fcitx-frontend-qt5sudo apt-get install fcitx-frontend-qt5一般都已经安装过了,那么查看路径dpkg -L fcitx-frontend-qt5a@a:~$ dpkg -L fcitx-frontend-qt5/./usr/usr/lib/usr/lib/x86_64-linux-gnu/usr/lib/x86_64-linux-gnu/qt5/usr/lib/x86_64-linux-gnu/qt5/plugins/u
2021-05-12 17:27:54
658
1
原创 传输层
文章目录传输层协议概述进程之间的通信传输层的两个主要协议传输层的端口用户数据报协议UDPUDP概述UDP的首部格式传输控制协议TCP传输层协议概述进程之间的通信网络层提供主机之间的逻辑通信传输层提供应用进程之间的通信传输层有个很重要的功能——复用和分用 传输层的两个主要协议传输层有两个主要协议:传输控制协议TCP和用户数据包协议UDPUDP:提供无连接服务在传输数据之前不需要先建立连接传输的数据单位协议是UDP报文或用户数据报对方运输层在收到UDP报文后不需要进行回复虽然UDP
2021-05-07 23:07:19
795
5
原创 网络层
文章目录概述网际协议IP概述分类的IP地址概述网络层接受由数据链路层送来的数据,数据链路层解决了物理层的问题,将数据封装成帧、透明传输和差错检测。当网络层接收之后去掉帧头和帧尾即得到了准确的IP数据报。数据链路层遗留问题:数据链路层没有解决可靠传输问题即不重复、不丢失、不失序。数据链路层没有解决不同交换机之间的通信,不能实现不同网络之间的连接对于网络层提供的服务,有两种观点,即在计算机通信中,可靠交付由谁来负责?是网络还是端系统:面向连接(由网络层负责可靠交付)通信之前需要建立虚电路
2021-04-28 19:29:07
288
原创 STL—unordered_set和unordered_map使用及源码剖析
文章目录容器hashtable概述源码剖析hashtable使用容器unordered_set和unordered_multiset概述使用容器hashtable概述hashtable就是散列表(哈希表)哈希表采用散列技术,散列技术是一种查找技术,而且是一种"一步到位"的查找技术散列技术存储元素的时候是按照函数f对应的规律来存储元素,使得我们存储元素的位置为f(key)顺序/二分/差值查找:要查找元素key->与待查找集合中的元素对比->找到要查找元素的位置index散列查找:要查
2021-04-11 23:03:20
418
原创 STL—set和map使用及源码剖析
文章目录容器rb_tree容器set和multiset概述使用源码剖析容器map和multimap概述使用源码剖析容器rb_tree容器rb_tree封装了红黑树,是有序容器,提供了迭代器iterator用以遍历,但不应使用iterator直接改变元素值(虽然编程层面并没有禁止这样做)rb_tree提供两种插入操作:insert_unique和insert_equal前者表示节点的key一定在整棵树中独一无二,否则插入失败;后者表示节点的key可重复对于rb_tree,定义一个概念:节点的val
2021-04-08 23:26:45
195
原创 STL—queue和stack使用及源码剖析
文章目录queue和stack概述queue和stack的使用queue和stack源码剖析queue和stack概述queue和stack底层是通过deque实现的,从设计模式上来说,这两种容器本质上是deque的适配器。这两个容器的元素进出有严格的规则,所以queue和stack不支持有关迭代器的操作queue和stack的使用queue<int> q;q.empty();q.front();q.back();q.pop();q.push(2);q.size();
2021-04-08 11:47:03
219
原创 STL—deque使用及源码剖析
文章目录deque概述deque的使用deque源码剖析控制中心迭代器insert方法deque概述deque容器为一个给定类型的元素进行线性处理,像向量一样,它能够快速地随机访问任一个元素,并且能够高效地插入和删除容器的尾部元素。但它又与vector不同,deque支持高效插入和删除容器的头部元素,因此也叫做双端队列。deque容器可以在双端插入和删除,其底层是分段连续的,对于使用者来说造成了一种连续的假象。deque的使用deque类常用的函数有:(1) 构造函数deque():
2021-04-07 16:35:35
326
原创 STL—list使用及源码剖析
文章目录list概述list的使用list源码剖析结点迭代器迭代器萃取器list概述list本质是双向链表,插入和删除元素都是常数时间。list的使用#include <list>#include <algorithm>#include <iostream>using namespace std;void main() { list<int> l1; //空list list<int> l2(5); //5个节点大小的lis
2021-04-07 14:22:25
144
原创 STL—vector使用及源码剖析
文章目录vector概述vector的使用vector源码剖析vector概述vector动态数组,与数组类似,但是其容量可以进行扩大(一般是两倍扩大),然后把之前的内容赋值到扩充的内存中。vector的使用#include <vector>#include <algorithm>//初始化操作vector<int> v1;vector<int> v2(5); //声明一个空间大小为5的int向量vector<int> v3
2021-04-06 22:18:27
213
1
原创 C++之多态
文章目录多态概述多态分类静态多态函数重载运算符重载模板(泛型)函数模板类模板动态多态多态概述一种对象为了接口重用而呈现的多重形态。多态分类多态分为两类:静态多态:函数重载、运算符重载和模板动态多态:派生类和虚函数静态多态函数重载概念:函数名相同,形参数量、类型、顺序不同,返回值可同可不同作用:接口重用,避免名字污染,提高可读性。注意:形参无法通过const区分开,比如int max(int a)和int max(const int a)是一样的;而指针和引用可以通过const区分开
2021-03-25 20:50:04
81
原创 C++之继承
文章目录概述继承中的对象模型继承的分类单继承虚函数纯虚函数与抽象基类概述通过继承联系在一起的类具有层次关系,在层次的根部具有一个基类,其他类从基类继承而来,叫做派生类。定义类时,如果下层类除了拥有上一层类具有的特性,还具有本身的特性,可以考虑使用继承语法:class 子类 : 继承方式 父类继承中的对象模型父类中所有非静态成员都会被子类继承,包括私有成员,只是被隐藏了,子类访问不到。继承的分类单继承继承中的访问问题:虚函数声明方式:在基类中,需要被子类重写的函数由virtual修饰。
2021-03-25 14:02:18
186
2
原创 C++之封装
文章目录封装的意义成员变量和成员函数类的成员变量普通成员变量类的初始化方式:mutable 可变成员变量static 静态成员变量封装的意义将属性和行为作为一个整体,表现生活中的事物类可以把属性和行为放在不同的权限下,加以控制成员变量和成员函数在C++中,成员变量和成员函数分开存储。计算类所占内存大小时,只有非静态成员变量才属于类的大小,其余都不计算在类的内部。空类创建的对象占的字节数为1类的成员变量类对象的构造顺序:分配内存,调用构造函数,隐式/显式地初始化各数据成员;进入构造函
2021-03-23 09:00:07
888
原创 细说C++之static
文章目录静态全局变量静态局部变量静态全局变量在全局变量前加上关键字static,该变量就是静态全局变量静态全局变量的特点:该变量在全局数据区分配内存未初始化的静态全局变量会被程序自动初始化为0;静态全局变量在声明它的整个文件都是可见的,在文件外不可见。静态局部变量在局部变量前加上关键字static,该变量就是静态局部变量。静态局部变量的特点:该变量在全局数据区分配内存静态局部变量在程序执行到该对象被声明处时被首次初始化,以后的函数调用都不再进行初始化;...
2021-03-16 22:38:45
207
1
原创 C++之变量
文章目录变量的含义及定义变量的初始化变量的声明概要声明和定义的区别extern 关键字变量的命名标识符名字的作用域变量的constconst变量const与指针const参数顶层const和底层constconstexpr和常量表达式变量的含义及定义变量:给一段指定的内存空间起名,方便操作和管理这段内存空间。语法:数据类型 变量名 = 初始值;变量的初始化默认初始化:对于内置数据类型,定义于任何函数体之外的变量被初始化为0;定义在函数体内部的内置类型变量将不被初始化。每个类各自决定其初始化对象的
2021-03-16 08:59:01
174
原创 HeadPoseEstimation-WHENet环境配置
代码github链接首先创建名为test的虚拟环境,配置python=3.6版本conda create -n test python=3.6source activate testpip install -r requirements.txt安装 kerasconda install keras==2.2.0安装tensorflow-gpuconda install tensorflow-gpu==1.10.0安装cudnnconda install cudnn==7.1.3
2021-03-01 14:27:06
544
原创 FSA-Net环境配置
首先创建名为test的虚拟环境,配置python=3.6版本和opencv3conda create -n test python=3.6source activate testconda install -c https://conda.anaconda.org/menpo opencv3安装 tensorflowconda install tensorflow==1.10.0安装 kerasconda install keras==2.2.0安装tensorflow-gpucon
2021-02-25 09:37:54
207
原创 OpenCV-未定义符号:hb_font_funcs_set_variation_glyph_func
在conda环境中使用以下命令安装了opencv3conda install -c menpo opencv3当尝试导入cv2时,出现以下错误:ImportError:/usr/lib/x86_64-linux-gnu/libpangoft2-1.0.so.0:未定义的符号:hb_font_funcs_set_variation_glyph_func最终通过:使用以下命令安装pango来解决 conda install -c conda-forge pango...
2021-02-24 16:17:33
505
1
原创 ImportError: libpng12.so.0: cannot open shared object file: No such file or directory
在conda环境中调用opencv报错:ImportError: libpng12.so.0: cannot open shared object file: No such file or directory原因:动态链接库丢失或路径找不到解决:执行下列命令即可wget -q -O /tmp/libpng12.deb http://mirrors.kernel.org/ubuntu/pool/main/libp/libpng/libpng12-0_1.2.54-1ubuntu1_amd64.deb
2021-02-24 16:13:20
2788
2
原创 Ubuntu系统安装dlib(C++与python)
Ubuntu系统安装dlib(C++与python)1、下载dlib,下载地址,左下角点击下载[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-MCf4hXl0-1610703052814)(en-resource://database/614:1)]2、安装C++版本sudo apt-get install build-essential cmake pkg-configsudo apt-get install libatlas-base-dev libboost-p
2021-01-15 17:31:14
564
原创 Ubuntu 16.04 安装Opencv 3.4.3
Ubuntu 16.04 安装Opencv 3.4.31.1 下载Opencv 3.4.3去官网下载opencv,在本教程中选用的时opencv3.4.3,其他版本的配置方法异曲同工。下载链接,选择sources版本[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Gi4BVFyg-1610701452619)(en-resource://database/610:1)]1.2 解压zip包unzip opencv-3.4.3.zipcd opencv-3.4.3
2021-01-15 17:04:24
155
原创 Ubuntu系统配置RealSense SDK
去github下载插件,下载地址Register the server’s public key:sudo apt-key adv --keyserver keys.gnupg.net --recv-key F6E65AC044F831AC80A06380C8B3A55A6F3EFCDE || sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-key F6E65AC044F831AC80A06380C8B3A55A6F
2021-01-15 15:38:53
208
1
原创 Qt creater警告:the code model could not parse an included file
the code model could not parse an included file,which might lead to incorrect code completion and highlighting,for example解决办法:帮助->C+±>ClangCodeModel的勾去掉即可
2020-12-03 16:49:10
365
原创 QT操作SQL基本步骤
Qt操作SQLite数据库的五步走法决:第一步,建立一个连接:QSqlDatabase db=QSqlDatabase::addDatabase(“QSQLITE”);第二步,关联数据库文件:db.setDatabaseName(“这里你的数据库文件路径”)第三步,打开数据库:db.open()第四步,如果数据库打开成功,就建立一个相关联的QSqlQuery对象:QSqlQuery query(db)第五步,执行SQL语句:query.exec(“你的SQL语句字符串”)...
2020-12-03 10:55:46
993
原创 信号和槽
信号和槽概述案例Teacher类Student类下课后,老师触发一个信号,饿了;学生响应信号,请客吃饭teacher类的头文件teacher类的cpp(信号不需要实现)student类的头文件(槽函数类)student类的实现widget实现...
2020-12-02 15:42:58
130
原创 QT入门基础知识
文章目录main函数,入口函数工程文件头文件QT编程技巧main函数,入口函数工程文件头文件QT编程技巧截图来自B站2019年最新QT从入门到实战完整版|传智播客
2020-12-02 15:08:59
176
原创 常见sql命令
常见sql命令显示数据库:show databases;创建数据库:create database <库名>选择数据库:use **;查看数据库中的表:show tables;查看当前所在库 :select database();创建一个表:create table <表名>;查看表的描述:desc <表名>;查看数据:select * from <表名>插入数据:insert into <表名> values
2020-11-30 14:28:54
135
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人