自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(40)
  • 资源 (7)
  • 收藏
  • 关注

原创 docker命令使用记录

docker

2023-02-19 00:32:54 138

原创 模板类类型的智能指针转换

#include <iostream>#include <memory>class Parent { public: virtual void Print() { std::cout << "Parent" << std::endl; }};class Child : public Parent { public: void Print() override { std::cout << "Child" << .

2021-11-26 20:55:49 726

转载 git每次都要输入账号密码

使用git pull或者git push每次都需要输入用户名和密码很繁琐,耽误时间,现在教大家一条命令实现保存用户名和密码不用再输入 git config --global credential.helper store git pull /git push (第一次输入,后续就不用再次数据) push你的代码 (git push), 这时会让你输入用户名和密码, 这一步输入的用户名密码会被记住, 下次再push代码时就不用输入用户名密码 ! 这一步会在用户目录下生成文件.git-c..

2021-09-14 11:01:02 3272

转载 16进制字符串转10进制整形

ngx_int_tngx_hextoi(u_char *line, size_t n){ u_char c, ch; ngx_int_t value, cutoff; if (n == 0) { return NGX_ERROR; } cutoff = NGX_MAX_INT_T_VALUE / 16; for (value = 0; n--; line++) { if (value > cutoff.

2021-08-25 16:50:37 303

转载 大小写字符转换

#include <iostream>#define ngx_tolower(c) (u_char)((c >= 'A' && c <= 'Z') ? (c | 0x20) : c)#define ngx_toupper(c) (u_char)((c >= 'a' && c <= 'z') ? (c & ~0x20) : c)int main() { char c1 = 'a'; char c2 = 'B';.

2021-08-24 17:11:22 116

原创 用C++11实现线程池

轮子:https://blog.csdn.net/zdarks/article/details/46994607#commentBox下面稍微改造了一下 main.cpp #include "ThreadPool.h"#include <iostream>char Func(char c) { int cnt = 1; while(cnt < 10) { std::cout<< c<< std::endl;

2021-01-16 23:15:30 252

原创 关于condition_variable的使用

#include <thread>#include <mutex>#include <condition_variable>#include <vector>#include <future>#include <unistd.h>#include <iostream>class A { private: std::vector<int> vcts; std::mutex mMutex.

2021-01-16 19:43:04 552

原创 多线程和套接字

​​​​​​server.cpp(编译时需要链接pthread库) #include <stdio.h>#include <stdlib.h>#include <unistd.h>#include <sys/socket.h>#include <arpa/inet.h>#include <string.h>#include <pthread.h>#include <sys/epoll.h>..

2021-01-15 21:29:21 251

原创 套接字和标准I/O

标准的I/O函数具有两大优点: 良好的移植性 利用标准I/O函数的缓冲可以提高性能(传输数据越多,性能提升越大,但是在多线程中似乎优点问题) 代码 server.cpp #include <stdio.h>#include <stdlib.h>#include <unistd.h>#include <sys/socket.h>#include <arpa/inet.h>#include <string.h&gt..

2021-01-15 21:18:11 142 1

原创 epoll的边缘触发

Level_triggered(水平触发):当被监控的文件描述符上有可读写事件发生时,epoll_wait()会通知处理程序去读写。如果这次没有把数据一次性全部读写完(如读写缓冲区太小),那么下次调用 epoll_wait()时,它还会通知你在上没读写完的文件描述符上继续读写,当然如果你一直不去读写,它会一直通知你!!!如果系统中有大量你不需要读写的就绪文件描述符,而它们每次都会返回,这样会大大降低处理程序检索自己关心的就绪文件描述符的效率!!!Edge_triggered(边缘触发):当被监控的文件描

2021-01-15 21:04:09 933

原创 TCP/IP网络编程

一、概念: 套接字:传输网络数据的软件设备。 TCP的特点:可靠的、按序传递的、基于字节的面向连接的数据传输方的协议。传输过程中数据不会消失,按序传输数据,传输的数据不存在数据边界。 UDP的特点:不可靠的、无序的、以数据高速传输为目的的协议。强调快速传输而非传输顺序,传输的数据可能丢失也可能损坏,传输的数据有数据边界,限制每次传输的大小。 网络模型(四层):应用层、TCP或UDP层、IP层、网络层。 三次握手,四次挥手。 半关闭状态:关闭一半的套接字缓存区,即关闭写缓存或者读缓存。 多..

2021-01-15 20:58:39 1140

原创 使用select实现I/O复用

实验条件:在使用一个服务器,多个客户端的情况下,实现回声效果,即客户端传什么内容给服务器,服务器将该内容返回。具体实现:每个客户端将自己的进程号传到服务器端,服务器端将该内容传给客户端。运行方法:server.cpp#include <stdio.h>#include <stdlib.h>#include <sys/socket.h>#include <unistd.h>#include <arpa/inet.h>#

2021-01-12 23:54:30 327

原创 基于多进程的I/O分割

运行效果如图:server.cpp#include <stdio.h>#include <stdlib.h>#include <unistd.h>#include <sys/socket.h>#include <arpa/inet.h>#include <string.h>#include <signal.h>#include <wait.h>#define MAX_BUFSIZE

2021-01-12 20:39:25 128

原创 Android实践之简单Banner

之所以说简单是,还有很多地方需要优化,比如最后一页到一次性滚动到最后一页没有做,从第一页直接选择第五页好像有卡顿现象,RadioButton也需要优化。。。。下载地址:https://download.csdn.net/download/chicaidecaiji/12439401代码如下:MainActivity.java package com.example.indicator;import androidx.appcompat.app.AppCompatActivity.

2020-05-19 22:07:26 377

原创 Android实践之TabActivity

一、效果2、主要代码(1).activity_main.xml<?xml version="1.0" encoding="utf-8"?><TabHost xmlns:android="http://schemas.android.com/apk/res/android" android:id="@android:id/tabhost" android:layout_width="match_parent" android:layo...

2020-05-11 16:24:54 456

原创 Android跑马灯效果

先看效果:代码分为两个部分:布局文件和activity代码1.布局文件中,TextView下面这几个属性必须如下设置:android:singleLine="true"android:ellipsize="marquee"android:focusable="true"android:focusableInTouchMode="true"2.activity必须设置T...

2020-04-22 13:22:49 988 4

原创 右值

《C++ primer》上明确给出“右值要么是字面值常量,要么是表达式求值过程中临时创建的对象”。第一句话,容易理解,不理解的话,思考一下,"int &&i = 1;"这句代码,编译器是运行无误的。第二句话,什么是临时创建的对象呢?指的是“返回值是非引用类型的表达式,在求值过程中临时创建的一个对象,作为表达式的返回值”。常见返回非引用类型的表达式有,返回非引用类型的函数、算...

2019-12-20 16:18:14 113

原创 虚函数

/*** 1、一旦某个函数被声明成虚函数,则在所有派生类中它都是虚函数。* 2、派生类的函数如果覆盖了某个继承而来的虚函数,则它的形参类型、返回类型必须与覆盖的基类函数完全一致,* 特别的是,如果当返回类型是类本身的指针或引用时,覆盖效果依然成立。* 3、如果虚函数使用了默认实参,则该实参值由本次调用的静态类型决定。* 4、使用作用域运算符,回避虚函数的机制,强制调...

2019-12-19 13:22:22 192

原创 派生类访问说明符

/* 派生类访问说明符* public :派生类从基类继承的public、protected成员,访问权限不变。* protected :派生类从基类继承的public成员,访问权限变成protected,而protected成员,访问权限不变。* private :派生类从基类继承的public、protected成员,访问权限变成private。** 派生类访问说明符对转换...

2019-12-19 13:18:49 479

原创 成员指针

#include <iostream>/* 定义成员变量的指针 */class Cusor { public: Cusor() : a(99){}; static int Cusor::*data() { return &Cusor::a; } private: int a;};int Cusor::*pData = Cusor::data(...

2019-12-18 15:25:42 136

原创 (数组)给定一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?找出所有满足条件且不重复的三元组。

给定一个包含n个整数的数组nums,判断nums中是否存在三个元素a,b,c ,使得a + b + c =0 ?找出所有满足条件且不重复的三元组。注意:答案中不可以包含重复的三元组。例如, 给定数组 nums = [-1, 0, 1, 2, -1, -4],满足要求的三元组集合为:[ [-1, 0, 1], [-1, -1, 2]]解题思路:1、暴...

2019-08-26 00:29:26 15284

原创 linux下,使用vscode编译c++程序

给上链接,非常详细,感谢!!!https://www.cnblogs.com/lidabo/p/5888997.html------------------------------------------华丽的分割线------------------------------------------上面链接是便于理解编译原理,如果是平时写demo,推荐一个插件,Easy c++ proj...

2019-04-15 23:21:36 1179

转载 检查单链表是否存在闭环

慢指针每次都slow=slow->next;而快指针每次都quick=quick->next->next;如果slow==quick;附上转载链接https://blog.csdn.net/kiripeng/article/details/81078493#include "stdafx.h"#include "iostream"struct Node...

2019-03-21 21:31:16 1134

转载 如何用C++画玫瑰

学以致用!在特殊的日子里,送上一份亲手自作的特殊礼物,也是极好的。谁说程序员不懂浪漫,哈哈哈...网上有不少这样的代码,我用的也是别人的win 32项目代码。给上链接https://blog.csdn.net/sunkun2013/article/details/15378027先看效果  为了方便备忘,我自己也给上源码吧!!!#include "stdafx...

2019-02-17 15:36:52 9015 6

原创 设计模式之中介者模式

2018-12-06 00:30:00 85

翻译 U3D学习碰到的问题

一、Camera显示不对1.Inspector窗口transform.position值调大了不能显示,有可能裁剪距离的问题,在Inspector窗口调整Clipping Planes.Far。使它大于position值(camera拍摄画面的那个值) 2.检查游戏体Inspector窗口,看看是否是Layer不对二、场景跳转问题1.创建不能跳转,unity3d 5使用Ed...

2018-09-16 13:03:29 616

翻译 设置vs在命令行窗口,打印信息

https://blog.csdn.net/MisterLing/article/details/78931307通过设置,可以使用printf,cout方便的从console窗口输出调试信息。设置方法:1、项目-&gt;属性-&gt;生成事件-&gt;生成后事件-&gt;命令行      在生成后事件命令行中新添加命令:editbin /SUBSYSTEM:CONSOLE $(Ou...

2018-08-21 17:19:54 3753

原创 同时生成多个随机数

百度出来的基本上都是使用rand()。这种基于时间的随机方法,在同时生成的多个随机值是不随机的。当然通过线程休眠,使用rand也可以实现随机,效率太低了。采用c++11的正态分布引擎改进了一下。vs2015下,是没问题的,vs2012不知道行不行。如果想了解其他分布引擎,可参考c++ primer的附录。char* GenerateStr() { int nSetSize =...

2018-08-20 14:06:59 11093 1

原创 MFC消息简单理解

消息的层级Window内核的消息队列 应用程序的UI线程消息队列 消息处理的窗体对象MFC消息机制简单分析        1、Window接收并发送消息至UI线程;        2、UI线程接收消息,判断消息类型,比如是WM_COMMAND消息,确定类型以后,判断目标句柄是否存在,             (1)、如果存在,交由目标窗体处理;             (2)...

2018-08-15 16:34:48 384

原创 理解remove算法

代码搬运工 -_-||template&lt;typename T&gt;typename vector&lt;T&gt;::iterator Remove(const typename vector&lt;T&gt;::iterator&amp; itBeg    , const typename vector&lt;T&gt;::iterator itEnd, const T&amp;...

2018-07-18 14:03:36 653

原创 智能指针的简单分析(三)——unique_ptr

忽略了释放函数的,但是不妨碍理解主要实现template&lt;typename Ty, typename Dy = nullptr_t&gt;class MyUniquePtr{ typedef typename Ty* MyPointer; typedef typename Dy MyDeleter; typedef MyUniquePtr&lt;Ty, Dy...

2018-07-18 13:55:54 366

原创 智能指针的简单分析(二)——shared_ptr

自己实现一个shared_ptr.template&lt;typename Ty&gt;class MySharedPtr{    typedef typename Ty* pointer;    typedef typename Ty* MyRef;private:    int* m_pnCount;    pointer m_ptPointer;public:   ...

2018-07-16 16:24:06 210

原创 智能指针的简单分析(一)——简述智能指针

unique_ptr 一份数据只允许一个控制权 struct StNode{ int a; string str; StNode(int x = 0, string s = "") : a(x), str(s) {}; ~StNode() {};};void Print_Unique_Ptr_B(std::unique_ptr&lt;StNode&g...

2018-07-16 16:15:37 217

原创 转置单链表

struct Node{ int nValue; Node* pNext; Node(int n = 0) : nValue(n), pNext(nullptr) {}; friend ostream&amp; operator&lt;&lt;(ostream&amp; os, Node* pNode);};ostream&amp; operator&lt...

2018-07-13 16:19:51 546

原创 async与future

一、async1.原型:async(launch::async|launch::deferred,        _STDforward&lt;_Fty&gt;(_Fnarg),        _STDforward&lt;_ArgTypes&gt;(_Args)...        );async(_STDforward&lt;_Fty&gt;(_Fnarg),        _STDforwa...

2018-07-12 16:51:17 1522

原创 使用c++11,实现一个生产者-消费者模型

#include <condition_variable>#include <iostream>#include <mutex>#include <string>#include <thread>#include <vector>std::vector<int> g_storeHouse; //...

2018-07-06 09:56:06 1934

原创 软件x64可以,win32出问题

我遇到问题是,软件的x64版本是没问题,但是同一套代码编出来的win32版本有问题。经过未知的努力,发现把VS优化项禁用掉就好了(原来优化项是速度最大化)。再深究下去,才找到了原因。 代码里没有返回值,导致了编译器返回了一个默认值,默认值是不定义的,导致了不定义的行为。vs2010与vs2012的默认返回值会不一样,优化开启与优化关闭的默认返回值会不一样。除了不添加返回值的操作,未初始化也会导...

2018-05-23 11:30:44 530

原创 C++ 读取注册表

#include "stdafx.h"#include "SearchExeFolder.h"#include &lt;iostream&gt;#define MAINKEY HKEY_LOCAL_MACHINEusing namespace std;CSearchExeFolder::CSearchExeFolder(void){}CSearchExeFolder::~...

2018-03-21 20:04:55 826 1

翻译 用GDI+加载图片,旋转CDC

http://download.csdn.net/download/chicaidecaiji/10179048

2017-12-29 00:46:17 601

原创 用Win32,写一个自定义的定时器

创建一个自定义定时器,其重点在于如何定时。吾的解决方案是适合采用观察者模式,分为主题类CPdsTimerSub和观察者类CPdsTimerObj ,这个两个类分别继承IPdsTimerSub和IPdsTimerObj接口 .#pragma once#include "stdafx.h"#include class IPdsTimer{public:IPdsTim

2017-08-30 23:12:35 528

Indicator.7z

简单的Banner

2020-05-19

OverflowMenu.7z

自己用、备忘的简单Demo

2020-05-15

TabActivity使用实例

TabActivity使用实例

2020-05-11

server_client_demo.rar

在Linux下,使用socket通信,已经写好makefile,在终端调用"make server"和"make client"就能够生产server和client两个可执行文件

2019-06-07

libcef3+MFC最简单的demo

较为简单的libcefdemo,其中包含了js如何调用c++函数,libcef版本号3683.1920

2019-04-08

GDI+加载图片,旋转CDC

查找资料时,实践的demo。查找资料时,实践的demo。查找资料时,实践的demo。查找资料时,实践的demo。查找资料时,实践的demo。

2017-12-29

空空如也

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

TA关注的人

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