自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 socket超时设置 之 ioctlsocket 函数全面解析

 先看看MSDN标准解释int ioctlsocket( SOCKET s, long cmd, u_long FAR *argp );Parameterss [in] Descriptor identifying a socket. cmd [in] Command to perform on the socket s. argp [in, out] Poin...

2018-07-20 18:06:53 1681

原创 jsoncpp 使用方法大全

jsoncpp 使用方法大全 Json(JavaScript Object Notation )是一种轻量级的数据交换格式。简而言之,Json组织形式就和python中的字典, C/C++中的map一样,是通过key-value对来组织的,key是任意一个唯一字符串,value可以是bool,int,string 或者嵌套的一个json。关于Json 格式可以参考官方网站。Jsoncpp ...

2018-07-12 18:26:04 438

原创 关于Content-Type中application/x-www-form-urlencoded 和 multipart/form-data的区别及用法

关于Content-Type中application/x-www-form-urlencoded 和 multipart/form-data的区别及用法一、表单在Form元素的语法中,EncType表明提交数据的格式 用 Enctype 属性指定将数据回发到服务器时浏览器使用的编码类型。 例如: application/x-www-form-urlencoded: 窗体数据被编码为名称/值对。这是...

2018-07-11 14:01:26 604

原创 http接口测试工具-Advanced-REST-client

非常好用的http接口测试工具相信作为一个java开发人员,大家或多或少的要写或者接触一些http接口。而当我们需要本地调试接口常常会因为没有一款好用的工具而烦恼。今天要给大家介绍一款非常好用、实用且方便的http接口测试工具。本人认为这是目前我用过的最好http接口测试工具(没有之一),先给大家展示一下。是不是感觉界面很清爽,好了废话不多说了,我们开始吧!需要的工具1、谷歌浏览器(这是开发人员必...

2018-07-11 11:48:59 2077

原创 JSON 是个什么玩意儿

JSON是什么JSON ( JavaScript Object Notation) ,是一种数据交互格式。为什么有这个技术Json之前,大家都用 XML 传递数据。XML 是一种纯文本格式,所以适合在网络上交换数据,但是 XML 格式比较复杂,终于道格拉斯·克罗克福特(Douglas Crockford)发明了JSON 这种超轻量级的数据交换格式。JSON 如何使用- 数据格式JSON 实际上是 ...

2018-07-09 17:41:31 705

原创 输入和输出

输出用print()在括号中加上字符串,就可以向屏幕上输出指定的文字。比如输出'hello, world',用代码实现如下:>>> print('hello, world')print()函数也可以接受多个字符串,用逗号“,”隔开,就可以连成一串输出:>>> print('The quick brown fox', 'jumps over', ...

2018-06-19 16:08:40 495

转载 Python代码运行助手

Python代码运行助手可以让你在线输入Python代码,然后通过本机运行的一个Python脚本来执行代码。原理如下:在网页输入代码:点击Run按钮,代码被发送到本机正在运行的Python代码运行助手;Python代码运行助手将代码保存为临时文件,然后调用Python解释器执行代码;网页显示代码执行结果:下载点击右键,目标另存为:learning.py备用下载地址:learning...

2018-06-19 15:57:46 1232

原创 使用文本编辑器

在Python的交互式命令行写程序,好处是一下就能得到结果,坏处是没法保存,下次还想运行的时候,还得再敲一遍。所以,实际开发的时候,我们总是使用一个文本编辑器来写代码,写完了,保存为一个文件,这样,程序就可以反复运行了。现在,我们就把上次的'hello, world'程序用文本编辑器写出来,保存下来。那么问题来了:文本编辑器到底哪家强?推荐两款文本编辑器:一个是Sublime Te...

2018-06-19 15:49:51 499

原创 第一个Python程序

在正式编写第一个Python程序前,我们先复习一下什么是命令行模式和Python交互模式。命令行模式在Windows开始菜单选择“命令提示符”,就进入到命令行模式,它的提示符类似C:\>:┌────────────────────────────────────────────────────────┐│Command Prompt ...

2018-06-19 15:49:08 202

原创 Python解释器

当我们编写Python代码时,我们得到的是一个包含Python代码的以.py为扩展名的文本文件。要运行代码,就需要Python解释器去执行.py文件。由于整个Python语言从规范到解释器都是开源的,所以理论上,只要水平够高,任何人都可以编写Python解释器来执行Python代码(当然难度很大)。事实上,确实存在多种Python解释器。CPython当我们从Python官方网站下...

2018-06-19 15:40:24 225

转载 安装Python

因为Python是跨平台的,它可以运行在Windows、Mac和各种Linux/Unix系统上。在Windows上写Python程序,放到Linux上也是能够运行的。要开始学习Python编程,首先就得把Python安装到你的电脑里。安装后,你会得到Python解释器(就是负责运行Python程序的),一个命令行交互环境,还有一个简单的集成开发环境。安装Python 3.6目前,P...

2018-06-19 15:39:00 213

原创 Python 简介

Python就为我们提供了非常完善的基础代码库,覆盖了网络、文件、GUI、数据库、文本等大量内容,被形象地称作“内置电池(batteries included)”。用Python开发,许多功能不必从零编写,直接使用现成的即可。除了内置的库外,Python还有大量的第三方库,也就是别人开发的,供你直接使用的东西。当然,如果你开发的代码通过很好的封装,也可以作为第三方库给别人使用。许多大型网站就是用P...

2018-06-19 15:22:40 158

原创 C++ 设计模式 之 简单工厂模式和工厂方法模式

简单工厂模式    简述        简单工厂模式 又叫 静态工厂方法模式,属于创建型模式。简单工厂模式的实质是由一个工厂类根据传入的参数,动态决定应该创建哪一个产品类的实例。             模式结构                工厂: 整个模式的核心,负责实现创建所有实例的内部逻辑。        抽象产品:所有具体产品的父类,负责描述所有实例所共有的公共接口。        具体...

2018-06-19 15:01:48 414

原创 C++ 设计模式 之 单例模式

简述        单例模式是设计模式中最简单的形式之一。其目的是使得类的一个对象成为系统中的唯一的实例。        这种模式设计到一个单一的类,该类负责创建自己的对象,同时确保只有单个对象被创建。这个类提供了一种访问其唯一对象的方式,可以直接访问,不需要实例化该类的对象。要点        单例模式的要点有三个:            单例模式有且仅有一个实例            单例类必...

2018-06-19 11:51:47 195

转载 C++11 std::unique_lock与std::lock_guard区别及多线程应用实例

C++11 std::unique_lock与std::lock_guard区别及多线程应用实例 C++多线程编程中通常会对共享的数据进行写保护,以防止多线程在对共享数据成员进行读写时造成资源争抢导致程序出现未定义的行为。通常的做法是在修改共享数据成员的时候进行加锁--mutex。在使用锁的时候通常是在对...

2018-06-19 11:22:28 184

原创 C++多线程(三)

条件变量(Condition Variable)条件变量是一种同步原语(Synchronization Primitive)用于多线程之间的通信,它可以阻塞一个或同时阻塞多个线程直到:收到来自其他线程的通知超时发生虚假唤醒(Spurious Wakeup) C++11为条件变量提供了两个类std::condition_variable:必须与std::unique_lock配合使用std::con...

2018-06-14 20:02:29 763

原创 C++11之多线程(二)

二, 互斥对象和锁    互斥(Mutex::Mutual Exclusion)    下面的代码中两个线程连续的往int_set中插入多个随机产生的整数#include <thread>#include <set>#include <random>using namespace std;int main(){ std::set<int&g...

2018-06-14 19:52:20 1958

原创 C++11 之多线程(一)

一,多线程概述    线程(Thread)是程序中独立执行的指令流,通常是系统调度的基本单位。含有两个或两个以上线程的程序就称为多线程程序,在硬件允许的情况下多个线程可以彼此独立的并行执行。在许多情况下都需要使用多线程,比如:        1,程序需要进行一些IO操作,IO操作通常需要一些时间才能完成,在这段时间线程就会被阻塞。使用多线程就可以启动一个新的线程去等待IO操作完成,而当前线程就可以...

2018-06-14 17:04:00 307

原创 atexit函数详解

对C语言有所了解的人都知道main函数是整个程序的入口,但是其实不然,在内核中可以使用链接器来设置程序的开始地方。当内核使⽤⼀个exec函数执⾏C程序时,在调⽤main函数之前先调⽤⼀个特殊的启动例程,可执⾏程序将此例程指定为程序的起始地址。启动例程从内核获取命令⾏参数和环境变量,然后为调⽤main函数做好准备。      前面我们关注的是程序开始进入时的调用函数,而atexit函数是一个特殊的函...

2018-06-14 11:01:22 307

原创 C++中volatile关键字的使用详解

1,为什么使用volatile ?    C/C++中的 volatile 关键字 和const对应,用来修饰变量,通常用于建立语言级别的memory barrier。这是BS在“The C++ Programming Language”对volatile修饰词的解释:      A volatile specifier is a hint to a compiler that an object...

2018-06-14 10:55:17 7187 2

原创 C++容器整理

1,排序函数#include <algorithm>using namespace std;bool cmp(int a, int b){ return a < b;}int main(){ vector<int> myvec{ 3, 2, 5, 7, 3, 2 }; vector<int> lbvec(myvec); sort...

2018-06-14 10:29:33 142

原创 C++ 的标准string类操作整理

1,定义和构造初始化    String类的构造函数和析构函数如下:a) string s;      //生成一个空字符串s b) string s(str) ;     //拷贝构造函数 生成str的复制品 c) string s(str, stridx);     //将字符串str内“始于位置stridx”的部分当作字符串的初值 d) string s(str, s...

2018-06-13 17:54:09 195

原创 C++文件读写 fopen,fread,fweite

#include <stdio.h>/*** @brief 打开文件** @param path 需要打开的文件路径; mode 文件打开方式* mode: r, 以只读方式打开方式,该文件必须存在;* r+, 以可只读方式打开文件,该文件必须存在;* rb+,读写打开一个二进制文件,允许度数据;* rt+,读写打开一个文本文件,允许读和写;...

2018-06-13 13:46:06 845

原创 C++中 map 的基本操作和嵌套map的使用

C++中map容器提供一个键值对容器,map与multimap差别仅仅在于multiple允许一个键对应多个值。本文主要总结一下map基本用法和嵌套用法示例。一、map基本用法  1   头文件   #include   <map>   2   定义   map<int,   int>   my_Map; //注意这里的int和int可以是其他类型  或者是typedef ...

2018-06-13 11:02:38 13762

原创 结构、联合、位字段

结构、联合、位字段1、结构体空洞结构字段在存储器中并不一定是挨着摆放的,有时两个字段之间会有小的空隙。 因为计算机总希望数据能对齐字边界,如果计算机的字长是32位,就不希望某个变量跨越32位的边界保存。 因为计算机按字从存储器中读取数据,如果某个字段跨越了多个字,CPU就必须读取多个存储单元,并以某种方式把督导的值合并起来。会很慢。2、匿名结构 匿名结构就是没有名字的结构,typedef s

2017-08-19 09:58:07 471

原创 Makefile简单使用

MakeMake是构建C程序的强大工具,参考:《GNU Make项目管理》 http://shop.oreilly.com/product/9780596006105.do1、变量: CFLAGS = -Wall –Wextra –v fred:fred.c gcc fred.c $(CFLAGS) –o fred2、使用%、^ 和 @很多编译命令看起来都很像

2017-08-19 09:42:54 236

原创 面试经典题

1、写出完整的strcpy函数#include <stdio.h>#include <assert.h>char* strcpy(char *strDest, const char *strSrc) //将源字符串加const表明为输入参数{ assert((strDest != NULL) && (strSrc != NULL)); //断言,出错检测 char *resu

2017-08-16 16:34:20 187

原创 嗨翻C

1、main函数 当计算机运行程序时,它需要一些方法来判断程序是否运行成功,计算机正是通过检查main()函数的返回值来做到这一点的。如果让main()函数返回0,就表明从程序运行成功;如果让它返回其他值,就表示程序在运行时出了问题。 如果想检查程序的退出状态,可以在Windows命令提示符中输入:echo %ErrorLevel%或在Linux或Mac中端中输入:echo $? 。2、编译并运

2017-08-03 21:58:19 715 1

原创 C陷阱与缺陷

1、词法分析中的“贪心法”C语言对于符号(包含一个或多个字符)的识别规则:每一个符号应该包含尽可能多的字符。也就是说,编译器将程序分解成符号的方法是,从左到右一个字符一个字符地读入,如果该字符可能组成一个符号,那么再读入下一个字符,判断已经读入的两个字符组成的字符串是否可能是一个符号的组成部分;如果可能,继续读入下一个字符,重复上述判断,直到读入的字符组成的字符串已不再可能组成一个有意义的符号。注

2017-07-29 11:04:26 418

原创 C语言查找算法

1、折半查找思想:假设表中元素按照升序排列,将表中间位置元素与查找关键字比较,如果两者相等,则查找成功;否则利用中间位置元素将表分为前后两个子表,如果中间元素大于查找关键字,则进一步查找前一子表,否则进一步查找后一子表,直到找到查找关键字即为查找成功。 优点:比较次数少,查找速度快,平均性能好; 缺点:必须为有序表,插入删除困难;适用于不经常变动而查找频繁的有序列表。代码:#include <s

2017-07-16 10:44:42 509

原创 C语言各种排序算法

1、shell排序(希尔排序)思想:把记录按下标的一定增量分组,对每组使用直接插入算法排序;随着增量逐渐减少,每组包含的关键字越来越多,当增量减少至1时,整个文件恰被分为一组,算法终止。优点:直接插入排序的改进版。 (1)不需要大量的辅助空间;(2)时间复杂度与增量序列的选取有关,(希尔增量时间复杂度为O(n^2)),希尔排序的时间复杂度下限是O(n(log2n)),对于中等大小规模表现良好

2017-07-16 10:20:03 287

原创 TCP/IP基础知识

1、OSI/ISO 参考模型(是ISO制定的一种 设计和描述计算机网络通信的基本框架): 它是一种理想的通信框架,在实际中并未广泛应用;应用层 —————— APDU —————— 提供应用程序间的通信; 表示层 —————— PPDU —————— 处理数据的格式,数据加密等; 会话层 ———

2017-05-22 23:07:16 327

原创 Shell中配置环境变量

1、一个可执行文件应该就是一个命令,但是当我们在命令行输入这个文件名时,会提示:“找不到命令”。这是为什么呢?由于没有配置好环境变量;系统执行命令是都是从PATH中寻找命令的。可以使用 echo $PATH 来查看当前的环境变量第一种方法:只是一次性的配置环境变量(再开另一个终端就不管用了)**export PATH=$PATH:.**第二种方法: vi ~/.bash_profile在PATH=…

2017-05-11 21:55:19 1057

原创 shell命令小练习,显示日期时间及一句话

1、创建一个cpp.sh文件 2、vim cpp.sh 1 date2 echo I will try my best to learn c++3、在桌面创建一个目录cpp 4、把cpp.sh移动到cpp目录下mv cpp.sh Desktop/cpp5、改变cpp.sh的权限为可执行cd Desktop/cppchmod a+x cpp.sh6、运行cpp.sh./cpp.sh

2017-05-11 21:32:01 292

原创 shell命令小练习,显示日期时间及一句话

1、创建一个cpp.sh文件 2、vim cpp.sh 1 date2 echo I will try my best to learn c++3、在桌面创建一个目录cpp 4、把cpp.sh移动到cpp目录下mv cpp.sh Desktop/cpp5、改变cpp.sh的权限为可执行cd Desktop/cppchmod a+x cpp.sh6、运行cpp.sh./cpp.sh

2017-05-11 21:31:24 402

原创 Qt中用CSS对进度条的样式表进行设置

/*首先是设置主体*/QSlider{ border-color: #bcbcbc;}QSlider::groove:horizontal { border: 1px solid #999999; height: 1px; margin: 0px 0; left: 5px; right: 5px; }/*设置中间的那个滑动的键 */QSlider::h

2017-04-29 11:10:08 4049

原创 Qt隐藏系统的窗口框架后如何移动窗口,如何改变其大小?

做项目时,为了界面美观些,把系统提供的窗口框架去掉后(无框架窗口),最令人恶心的是,无法改变无边框窗口的大小,也无法移动窗口。1、首先要了解一下九宫格,什么是九宫格? 一个窗体可以被划分为上、下、左、右、左上、左下、右上、右下、中间。除了中间部分,其余都要写代码。设外边框(如左部分)的宽度都为 Padding;2、在头文件中我们加一个宏定义,及一个用于判断鼠标将要移动方向的枚举:#define P

2017-04-29 11:05:21 1361

原创 Qt如何隐藏ListWidget的滚动条

为了界面的美观,我们有时会需要隐藏掉QListWidget的水平滚动条和垂直滚动条。 可以使用以下代码实现:QListWidget *lw_lyricList = new QListWidget();ui->lw_lyricList->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff);ui->lw_lyricList->setHorizonta

2017-04-29 10:04:17 10833

原创 Qt如何设置界面透明

1、设置窗口整体透明,但是窗体上的控件不透明。 可以通过设置窗体的背景来设置。QPalette pal = palette(); pal.setColor(QPalette::Background, QColor(0x00,0xff,0x00,0x00)); setPalette(pal);2、设置子控件透明: 可以在Qt Designer中,直接右键改变样式表,来设置其背景色:ba

2017-04-29 09:58:20 21952 3

原创 Qt如何设置任务栏中该应用的图标

this->setWindowIcon(QIcon(":/skin/icons/MusicPlayer.ico")); //设置窗口图标

2017-04-29 09:43:53 3944 1

空空如也

空空如也

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

TA关注的人

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