自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 数据结构 : 顺序表和链表

链表顺序表: 空间连续、支持随机访问、物理上是连续的概念:链表是一种物理存储结构上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。缺点:1、在头部或者中间插入、删除数据时,效率很低,(需要挪数据,然后插入或者覆盖),删除时间复杂度是O(N)2、增容代价大(开一个更大的空间,再拷贝过去)浪费空间(两倍增长:100个数据,插入101个数据,会浪费99的空...

2019-11-28 13:13:48 421

原创 测试 : Android使用Fiddler模拟弱网络环境测试

正文 第一步:下载抓包软件fiddler官网:http://www.telerik.com/fiddler这是PC端的软件,我们模拟弱网络环境的流程大概是:手机APP使用网络代理代理到我们的pc上,然后所有的网络请求都会经过pc,这个时候我们就可以通过fiddler来限制网络,从而达到模拟弱网络环境的目的。这就是Fiddler的主界面了...

2019-08-14 18:12:01 789

原创 测试 :微信小程序测试的策略和注意事项

微信小程序测试的策略和注意事项一、测试前准备(环境搭建)1.前端页面微信Web开发者工具安装、授权测试用的微信号可预览和调试小程序…可参考此文: 微信Web开发者工具-下载、安装和使用图解2.管理后台配置内网测试服务器环境,通过PC端Web站点管理小程序前端的输出内容,可从开发人员获取管理账号进行测试二、测试范围1.权限测试需要检查以下几种情况下微信用户访问的权限1)未授权微信...

2019-07-31 14:36:30 705

原创 Python : Windows安装配置ffmpeg

Windows安装配置ffmpeg先下载ffmpeg的windows版本https://ffmpeg.zeranoe.com/builds/解压下载的压缩包得到进入bin目录并获取路径

2019-07-31 11:18:41 2680 1

原创 C++ : List接口介绍及实现

List

2019-05-18 16:13:50 1168

原创 C++ :RAII-智能指针(auto_ptr、unique_ptr、shared_ptr )

智能指针#include <iostream>#include <vector>using namespace std;//RAII思想原型template<class T>class SmartPtr{public: SmartPtr(T* ptr) :_ptr(ptr) {} ~SmartPtr() { cout <...

2019-05-14 17:34:57 422

原创 C++ : AVL树的旋转图解及简单实现(插入、旋转、检测)

#pragma onceusing namespace std;template<class K, class V>struct AVLTreeNode{ AVLTreeNode<K, V>* _left; AVLTreeNode<K, V>* _right; AVLTreeNode<K, V>* _parent; //可以倒着走...

2019-05-07 13:54:26 663

原创 C++ : 应用map统计水果的个数

C++ : 应用map统计水果的个数#include <iostream>#include <string>using namespace std;//左子树的所有值小于根节点,右子树的所有值大于根节点#include <map>template<class K, class V>inline std::pair<K, V...

2019-05-06 18:36:25 630

原创 C++ : 搜索二叉树的实现

C++ : 搜索二叉树的实现前面学习了关联式容器 map/multimap/set/multiset,这几个容器有个共同点是:其底层都是按照二叉搜索树来实现的思考一下:什么是二叉搜索树(O_O)? 其底层是二叉搜索树吗?(•ิ_•ิ)??二叉搜索树二叉搜索树又称二叉排序树,它或者是一棵空树,或者是具有以下性质的二叉树:若左子树不为空,则左子树上所有节点的值都小于根节点的值若右子树不为...

2019-05-05 12:46:08 649

原创 C++ : STL关联式容器(map、set、multimap、multiset)

STL关联式容器(map、set、multimap、multiset)STL中的序列式容器,比如:vector、list、deque、forward_list(C++11)等,其底层为线性序列的数据结构,里面存储的是元素本身STL中的关联式容器也是用来存储数据的,与序列式容器不同的是,其里面存储的是<key, value>结构的键值对,在数据检索时比序列式容器效率更高键值对:用来...

2019-04-27 12:02:01 342

原创 Linux :cmake升级到cmake-3.9.2版本

1、获得到cmake-3.9.2源码wget https://cmake.org/files/v3.9/cmake-3.9.2.tar.gz2、输入命令解压tar xzvf cmake-3.9.2.tar.gz3、源码安装cd cmake-3.9.2./configuresudo make && make install...

2019-04-05 17:48:41 1938

原创 Linux :Centos7 使用新版的gcc - Developer Toolset 7

安装步骤:# sudo yum install centos-release-scl# sudo yum install devtoolset-7# scl enable devtoolset-7 bashsudo yum install centos-release-sclsudo yum install devtoolset-7scl enable devtoolset-...

2019-04-05 16:42:11 6919

原创 Linux :Centos7 安装 gcc

1、从用户切换到root(su ),然后输入 yum install gcc2、选择 y ,下载3、下载完成后继续选择 y4、等待升级完成即可5、安装成功后,可通过命令 gcc -v 查看gcc版本...

2019-04-05 15:33:12 668

原创 C++ :String的使用方法(介绍、声明初始化、编码集、string接口的应用)

C++ :String的使用方法(介绍、声明初始化、编码集、string接口应用与实现)简单介绍string是表示字符串的字符串类该类的接口与常规容器的接口基本相同,再添加了一些专门用来操作string的常规操作。string在底层实际是:basic_string模板类的别名,typedef basic_string&amp;amp;lt;char, char_traits, allocator&amp;amp;gt;...

2019-03-10 21:29:18 2462

原创 C++ :String的三种遍历方式(下标+operator[] 、迭代器、C++11新式for循环)

String的三种遍历方式(下标+operator[] 、迭代器、C++11新式for循环)把字符串“1234”转换为整形1234&amp;amp;amp;amp;lt;1&amp;amp;amp;amp;gt;下标+operator[]数组遍历用[]把&amp;amp;amp;quot;1234&amp;amp;amp;quot;转换成整形#include &amp;amp;amp;amp;lt;iostream&amp;amp;amp;

2019-03-08 16:09:44 6655

原创 C++ : 模板初阶(泛型编程、函数模板、类模板)

模板初阶(泛型编程、函数模板、类模板)泛型编程泛型编程:编写与类型无关的通用代码,是代码复用的一种手段。模板是泛型编程的基础。函数模板概念函数模板代表了一个函数家族,该函数模板与类型无关,在使用时被参数化,根据实参类型产生函数的特定类型版本。函数模板格式template&lt;typename T1, typename T2,…,typename Tn&gt;返回值类型 函数名...

2019-03-06 21:14:26 291

原创 C++ :内存管理 下(在堆、栈上创建对象;单例模式(饿汉模式、懒汉模式);内存泄漏)

内存管理 下(在堆、栈上创建对象;单例模式(饿汉模式、懒汉模式);内存泄漏)请设计一个类,该类只能在堆上创建对象构造函数私有化将类的构造函数私有,拷贝构造声明成私有。防止别人调用拷贝在栈上生成对象。提供一个静态的成员函数,在该静态成员函数中完成堆对象的创建//只在栈上创建class HeapOnly{public: static HeapOnly* GetHeapOb...

2019-03-05 16:59:19 634

原创 C++ : 内存管理 上(C/C++内存分布、C语言中动态内存管理方式、C++内存管理方式(new、delete))

内存管理 上(C/C++内存分布、C语言中动态内存管理方式、C++内存管理方式(new、delete))C/C++内存分布int globalVar = 1; //全局、局部变量存储在数据段static int staticGlobalVar = 1;void Test(){ static int staticVar = ...

2019-03-02 19:29:55 271

原创 C++ : 类和对象下(初始化列表、explicit关键字、static成员、 C++11 的成员初始化、友元、内部类)

类和对象3(再谈构造函数、static成员、 C++11 的成员初始化新玩法、友元、内部类)再谈构造函数1 构造函数体赋值在创建对象时,编译器通过调用构造函数,给对象中各个成员变量一个合适的初始值class Date{public: Date(int year, int month, int day) { _year = year; ...

2019-03-01 22:56:24 495

原创 C++ : 实现一个Date类

C++ : 实现一个Date类#include &quot;Date.h&quot;int Date::GetMonthDay(int year, int month) //获得月份有多少天{ //1、写12个if //2、switch语句 //3、 //年份判断考虑闰年:四年一闰,百年不闰,四百年再一闰地球公转) static const int monthArray[13] = { 0, 31...

2019-02-28 15:19:51 623

原创 C++ : 类和对象中 ( 类的成员函数、构造函数、析构函数、拷贝构造函数、赋值运算符重载、const成员)

类和对象2 ( 类的成员函数、构造函数、析构函数、拷贝构造函数、赋值运算符重载、const成员)类的6个默认成员函数如果一个类中什么成员都没有,简称为空类。空类中什么都没有吗?不是的。任何一个类在我们不写的情况下,都会自动生成下面6个默认成员函数class Date{ };构造函数构造函数是一个特殊的成员函数,名字与类名相同,创建类类型对象时由编译器自动调用,保证每个数据成员都有一个...

2019-02-25 20:30:58 420

原创 C++ : 类和对象上 ( 类详解、访问限定符及封装、作用域、实例化、类对象大小、this指针)

类和对象更好的模拟现实世界,认知世界类的使用和用法和C语言很像,类相比于C语言的结构体还多了方法类的引入C语言中,结构体中只能定义变量,在C++中,结构体内不仅可以定义变量,也可以定义函数struct Student{ void SetStudentInfo(const char* name, const char* gender, int age) { strcpy(_name...

2019-02-24 17:41:12 257

原创 C++ : 入门知识学习 下(引用、内联函数、auto、新式for循环)

C++ : 入门知识学习3(引用、内联函数、auto、新式for循环)引用(别名)引用不是新定义一个变量,而是给已存在变量取了一个别名,编译器不会为引用变量开辟内存空间,它和它引用的变量共用同一块内存空间,值、地址相同定义引用的表示方法与定义指针相似,只是用&amp;amp;amp;amp;代替了*,引用(reference)是 C++ 对 C 语言的重要扩充。引用就是某一变量(目标)的一个别名,对引用的操作与对变...

2019-02-23 17:35:08 571

原创 C++ :入门知识学习 中(函数重载、名字修饰规则及 extern "C" 的作用、指针空值nullptr(C++11))

C++ :入门知识学习(函数重载、名字修饰规则及 extern “C” 的作用)函数重载函数重载:是函数的一种特殊情况,C++ 允许在同一作用域中声明几个功能类似的同名函数,这些同名函数的形参列表(参数个数 或 类型 或 顺序)必须不同,常用来处理实现功能类似数据类型不同的问题举例:以下函数构成重载int Add(int left, int right){ return left+ri...

2019-02-22 16:32:27 266

原创 C++ :入门知识学习 上(命名空间、C++输入&输出、缺省参数)

C++ :入门知识学习(命名空间、C++输入&amp;amp;amp;amp;输出、缺省参数、函数重载)命名空间使用命名空间的目的是对标识符的名称进行本地化,以避免命名冲突或名字污染定义命名空间,需要使用到 namespace 关键字,后面跟命名空间的名字,然后接一对{ }即可,{ }中即为命名空间的成员注意 :一个命名空间就定义了一个新的作用域,命名空间中的所有内容都局限于该命名空间中 ; 同一域不能取同名...

2019-02-21 16:53:49 268

原创 Linux : 线程的同步与互斥(模拟买票系统)

线程的同步与互斥进程线程间的互斥相关背景概念【临界资源】:多线程执行流共享的资源就叫做临界资源【临界区】:每个线程内部,访问临界自娱的代码,就叫做临界区【互斥】:任何时刻,互斥保证有且只有一个执行流进入临界区,访问临界资源,通常对临界资源起保护作用【原子性】:不会被任何调度机制打断的操作,该操作只有两态,要么完成,要么未完成互斥量mutex大部分情况,线程使用的数据都是局部变量,变...

2019-01-21 21:23:12 641 1

原创 Linux : 软连接与硬链接(的比较)

软连接与硬链接软链接软链接又叫符号链接,这个文件包含了另一个文件的路径名。可以是任意文件或目录,可以链接不同文件系统的文件。软链接是通过名字引用另外一个文件,是一个独立的文件,有独立的 inode (与目标文件不同),存的是目标文件的路径和名称,可找到目标文件(类似于 windos 系统下的快捷方式,可快速访问目标文件)运行目标文件和软链接,可发现:软连接可直接执行目标文件硬链接是通...

2019-01-20 22:00:59 396

原创 Linux : 文件系统(创建一个文件 inode号 、inode、数据块之间的关系)

文件系统

2019-01-18 22:12:19 4541 1

原创 Linux :条件变量

条件变量当一个线程互斥地访问某个变量时,它可能发现在其它线程改变状态之前,它什么也做不了。例如 : 一个线程访问队列时,发现队列为空,它只能等待,直到其它线程将一个节点添加到队列中。类似这种情况就需要用到条件变量。条件变量是用来实现同步机制的同步概念与竞态条件 :同步: 在保证数据安全的前提下,让线程能够按照某种特定的顺序访问临界资源,从而有效避免饥饿问题,叫做同步竞态条件: 因为...

2019-01-16 22:18:41 173

原创 Linux : 基础 IO 二 ( 文件描述符fd(" 0 & 1 & 2 " 及 " 分配规则 ")、重定向、使用 dup2 系统调用 )

重定向这是重定向的示图,仔细看图哦,再动动脑筋,思考思考!看看能否理解重定向的本质呢?下面有代码,一会再对照一下自己的想法对不对上代码辣:#include &amp;amp;amp;lt;stdio.h&amp;amp;amp;gt; #include &amp;amp;amp;lt;sys/types.h&amp;amp;amp;gt; #include &amp;amp;amp;lt;sys/stat.h&a

2019-01-15 22:11:26 5877 2

原创 Linux : 基础IO 一 ( 接口介绍、open函数 )

基础IOstdin &amp;amp;amp;amp;amp;amp; stdout &amp;amp;amp;amp;amp;amp; stderrC默认会打开三个输入输出流,分别是 stdin, stdout, stderr仔细观察发现,这三个流的类型都是FILE*( C语言提供的类型 ), fopen 返回值类型,文件指针stdin, stdout, stderr 对应的 键盘、显示器、显示器接口介绍open原型#include &a

2019-01-15 22:10:13 1370

原创 Linux : 线程控制总结 (POSIX线程库、创建线程、线程ID及进程地址空间布局、线程终止、线程等待 、分离线程)

POSIX线程库与线程有关的函数构成了一个完整的系列,绝大多数函数的名字都是以“pthread_”打头的要使用这些函数库,要通过引入头文&amp;amp;amp;amp;amp;amp;amp;amp;lt;pthread.h&amp;amp;amp;amp;amp;amp;amp;amp;gt;链接这些线程函数库时要使用编译器命令的“-lpthread”选项创建线程原型#include &amp;amp;amp;amp;amp;amp;amp;amp

2019-01-14 22:00:34 224

原创 Linux : CentOS 6.6 yum 源更新

CentOS 6.6 yum 源更新备份cp /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d//CentOS-Base.repo.ori下载新的CentOS-Base.repo 到/etc/yum.repos.d/wget -O /etc/yum.repos.d/CentOS-Base.repohttp://mirrors.a...

2019-01-14 15:54:15 442

原创 Linux 中 g++: command not found 解决方法

Linux 中 g++: command not found 解决方法G++没有安装或者没有更新解决方法如下: centos:yum -y update gccyum -y install gcc+ gcc-c++ ubuntu:apt-get update gccapt-get install g++解决方案示图:1&amp;amp;gt; 编译 C++ 文件时,出现提示:2...

2019-01-12 20:06:50 22134 1

原创 Linux : 虚拟机怎么用root身份登录

Linux 虚拟机怎么用 root 身份登录Linux 系统中,切换账户可以使用命令su,实现 root 账户与普通用户之间的切换root用户——&gt;普通用户 su - 普通用户名 ( su - admin )普通用户——&gt;至root su - su - root 然后输入root密码su 和 su - 的差别,如下命令说明(只有切换了Shell环境才...

2019-01-12 19:25:21 20046 6

原创 Linux :打开 VMware 虚拟机时,“内部错误”,怎么解决?

有时候当我们打开 VMware 虚拟机时,会看到“内部错误”的情况,不知道该怎么办?要不要卸载重新装?不要慌。这通常是因为 VMware 服务器停止引起的,只需要启动 VMware 服务就可以了。具体步骤如下:1&amp;gt; 提示“内部错误”,故障场景,如图所示2&amp;gt; 打开运行窗口,输入命令“ cmd ”,调出 DOS 命令行界面3&amp;gt; 在命令行界面中输入“ services.ms...

2019-01-12 16:53:03 6312 5

原创 Linux :线程介绍

进程是承担分配系统资源的基本实体线程是CPU调度的基本单位线程的概念进程是具有一定独立功能的程序关于某个数据集合上的一次运行活动,进程是系统进行资源分配和调度的一个独立单位在⼀个程序⾥的⼀个执⾏路线就叫做线程(thread)更准确的定义是:线程是“⼀个进程内部的控制序列”⼀切进程⾄少都有⼀个执⾏线程线程是在进程内部运行,本质是在进程地址空间内运行进程和线程进程是资源竞争的基...

2019-01-11 20:47:06 415

原创 Linux 进程间通信——信号(阻塞信号、捕捉信号、可重⼊函数、SIGCHID信号)

信号概念的引入生活中的例子,比如:交通信号灯 、警报 、手机来电等,都是一种信号,而且信号的产生有三个特点 :1&amp;amp;amp;gt; 随机性2&amp;amp;amp;gt;信号没发出,但知道其作用3&amp;amp;amp;gt;记住了信号了特征由此,我们可以得出,对于进程而言信号的特性类似1&amp;amp;amp;gt;信号的产生是异步的(不知道什么时候会发出信号)2&amp;amp;amp;gt;即使没收到信号,但提前知

2019-01-10 23:27:59 454

原创 Linux : 实现一个简易的 shell( mini_shell )

Shell介绍: Linux系统提供给用户的最重要的系统程序是Shell命令语言解释程序。它不属于内核部分,而是在核心之外,是操作系统的外壳程序,以用户态方式运行。其基本功能是解释并执行用户打入的各种命令,实现用户与Linux核心的接口。系统初启后,核心为每个终端用户建立一个进程去执行Shell解释程序。 从技术角度,Shel的最简单定义:命令行解释器(command Interpreter...

2019-01-09 21:56:12 1214

原创 Linux:进程程序替换

进程程序替换原理:用fork创建子进程后执行的是和父进程相同的程序(但有可能执行不同的代码分支),子进程往往要调用一种exec函数以执行另一个程序。当进程调用一种exec函数时,该进程的用户空间代码和数据完全被新程序替换,从新程序的启动例程开始执行。调用exec并不创建新进程,所以调用exec前后该进程的id并未改变。如图所示:注意:进程程序替换,不创建新的子进程,替换的是代码段,一旦替...

2019-01-09 19:26:36 242

空空如也

空空如也

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

TA关注的人

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