自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

卡木

思而致远

  • 博客(97)
  • 资源 (2)
  • 收藏
  • 关注

原创 C++ 异常处理之new_handler机制

(一)初探new_handler 首先,C++的内存管理和异常处理是重点,也是交融的板块。在编写C/C++程序时,经常会malloc/new一块内存,大概就会有如下的代码://malloc:#define SIZE 100int *p = malloc(sizeof(int) * SIZE);if( !p ){ //...}//new:...

2020-01-13 18:31:22 688

原创 LeetCode(1089)复写零

话在前:(1)题目描述 (2)解题思路 (3)代码和结果(1)题目描述:给你一个长度固定的整数数组arr,请你将该数组中出现的每个零都复写一遍,并将其余的元素向右平移。注意:请不要在超过该数组长度的位置写入元素。要求:请对输入的数组就地进行上述修改,不要从函数返回任何东西。示例 1:输入:[1,0,2,3,0,4,5,0]输出:nul...

2019-10-26 17:43:42 411

原创 C++ STL queue

(一)了解queuequeue就是一个FIFO的队列其底层容器默认是deque没有迭代器!只能访问头和尾,不能随机访问。queue是适配器,不叫容器,因为是对容器的再封装。(二)Test_Demo#include <iostream>#include <queue>//FIFO#include <algorithm>using nam...

2019-09-02 17:30:40 293

原创 C++ STL array

(一)了解arrayarray是一个静态数组的容器,固定长度,但是也有迭代器,特别是at方法可以检测越界,同时,array的使用也比较方便。不过,为觉得不如使用普通的数组。。。(二)Test_Demo#include <iostream>#include <array>#include <algorithm>using namespace ...

2019-08-29 14:33:25 311

原创 C++ STL map

(一)了解mapmap是有序(默认升序)不重复的key-value对(关联容器,不同于顺序容器)其底层存储结构为红黑树。key不允许重复(二)Test_Demo#include <iostream>#include <string>#include <map>using namespace std;int main(){ /****...

2019-08-28 19:53:43 305

原创 C++ STL list(强大到想扔了C)

(一)了解listlist是一个十分强大的链表容器概念!可以进行各种遍历、插入、删除、去重、合并、拼接、排序等。(二)Test_Demo#include <iostream>#include <list>//链表结构using namespace std;int main(){ /***************Demo1 list define...

2019-08-27 14:29:16 5353 2

原创 C++ STL set集合

(一)了解setset是一个有序(默认升序,可设置为降序创建)不重复的集合。set的创建和vector类似,也是用{};set的遍历也是用自己的迭代器:set<T>::iterator it = xxx.begin()...;set的clear()就直接清空set的erase的参数可以是迭代器指定的头尾,也可以是set容器中指定要删除的keyvalue;set的insert...

2019-08-22 14:58:53 621 1

原创 C++ STL vector 定义 操作(各种正反向遍历是重点)

(一)了解vectorvector是一个容器,可容纳不同的类型;常见操作是初始化、push_back/pop_back/insert/erase/clear data to vector、各种正反向遍历、排序与二维定义及遍历。(二)Test Demo#include <iostream>#include <vector>#include <algor...

2019-08-20 10:41:33 1672

原创 C++ STL string

(一)string的理解string是一个容器,主要注意初始化、字符的增删改查(注意类型)、迭代遍历(方式很多)、内存管理和一些字符串函数等等。内存管理resize 和reserv分析见https://blog.csdn.net/oppo62258801/article/details/75949802代码见下。(二)Test Demo#include <iostream...

2019-08-20 09:16:30 241

原创 Linux I/O多路复用技术(epoll、select和poll)

参考:https://www.cnblogs.com/aspirant/p/9166944.html select、poll、epoll之间的区别(搜狗面试)https://www.cnblogs.com/lit10050528/p/4650557.html linux select 学习https://blog.csdn.net/qq_19923217/articl...

2019-08-15 11:46:40 271

原创 C++ map && hash_map 底层实现 冲突解决 和 应用选择等

参考:https://blog.csdn.net/yousss/article/details/79540690 详解STL中的map和hash_map区别https://blog.csdn.net/fsfsfsdfsdfdr/article/details/82697289 STL hashmap原理及冲突解决https://my.oschina.net/biezhi/bl...

2019-08-14 17:41:23 739

原创 一致性Hash算法相关

参考:https://www.jianshu.com/p/e968c081f563https://www.cnblogs.com/bonelee/p/6244410.html1.一致性Hash解决的核心问题是:当某个集群中的server发生局部改变时,尽量少的移动请求与服务器的映射关系。2.图解一致性Hash环对理解很重要,尤其是当加入虚拟节点后的映射关系对应。3.虚拟节点的出...

2019-08-13 15:08:25 183

原创 TCP 三次握手、四次分手相关

1.参考:https://blog.csdn.net/u013344815/article/details/72134950tcp三次握手的过程、每次握手的意义 及 第三次握手的必要性。第三次握手的必要性:防止已失效的请求报文段突然又传送到了服务端而造成连接的误判。说白了就是,建立稳定可靠的链接,同时用容错来处理错误多余的资源。另外,这里面有点没说到的是,TCP三次握手的状态问题,...

2019-08-13 10:45:03 205

原创 C++ 引用的底层实现

参考:https://blog.csdn.net/lws123253/article/details/80353197小结:(1)引用占一个指针类型的内存大小;(2)引用的内存地址存放的是被引用变量的起始地址;(3)当int x = 1; int &b = x; cout << &b << endl; 因为b是一个引用类型,故&b不会被编译...

2019-08-08 18:10:04 430

原创 11_C++多线程及线程间通信

参考:https://m.imooc.com/article/289630 C++11 标准库新引入的线程库https://www.jianshu.com/p/e5a3498ba930(一)多线程编程#include <iostream>#include <thread>#include <mutex>#include <condi...

2019-08-08 18:06:56 6954

原创 10_C++信号处理

参考:https://www.runoob.com/cplusplus/cpp-signal-handling.html1.相关头文件<csignal>2.信号处理的本质:注册回调用函数signal注册一个对应信号sig的处理函数,当程序在此后运行时,收到该信号就会去回调这个信号处理函数。3.信号从哪里来?可以自己在程序中raise sig;与可以是系统给出。4....

2019-08-03 18:00:56 289

原创 09_C++常用设计模式

先占个坑!

2019-08-03 18:00:07 231

原创 08_C++智能指针(给自己赞一个)

参考:六大智能指针:auto_ptr\shard_ptr\shared_array\scoped_ptr\scoped_array\week_ptrhttps://blog.csdn.net/zhourong0511/article/details/80315961auto_ptr: https://www.cnblogs.com/litterrondo/p/3187342.htmlV...

2019-08-03 14:26:38 207

原创 07_C++文件读写

C++的文件读写就是用用fstream、ifstream和ofstream类1.头文件:<fstream>2.三个类fstream:I/O流 默认读写打开文件ifstream:I流 默认以读打开文件ofstream:O流 默认以写打开文件3.打开文件方式一:实例化fstream类时默认打开如:fstream file(filename, mode); ...

2019-08-02 11:15:50 309

原创 06_C++泛型编程(函数模板与类模板)

泛型编程主要集中在:泛 型 =》数据类型“泛”泛也可以说是模糊的意思,就是说这是一种将数据类型透明化的编程方式。泛型编程的大概想法就是用模板的概念,向各个数据类型都提供编程接口,实现同一种功能,替代:每一种数据类型的同一种功能都去实现重复的代码。模板:函数模板 && 类模板(一)函数模板1.demo:template<typename T>T h...

2019-07-30 16:49:55 261

原创 05_C++异常处理

1.异常处理结构形如:void except_test(void){ try{ throw 1.2; } catch (const std::exception&){ } catch(...){ cout << "..." << endl; }}int main(int ar...

2019-07-30 13:44:12 350

原创 VS2017编译配置和使用LOG4CPP

1.环境(1)Windows7 64bit(2)VS2017(3)log4cpp-1.1.3.tar.gz2.编译参考:http://www.jiazi.cn/blog/?id=55解压log4cpp-1.1.3.tar.gz 得到log4cpp文件夹该版本指供了msvc6,msvc7(2003),msvc10(2010)的编译解决方案,其它编译解决方案可以从中选择一个进行调整。...

2019-07-24 21:37:13 1610

原创 04__C++命名空间

C++的命名空间:大概能想到这些:using namespace std;namespace XXX{ /*...*/ };void classname::fun();classname::var;命名空间的嵌套。1.using namespace std;这是最常见的例子,表示此指令以后的内容(本文件中),若有用到std标准库的方法或变量可以不加std::,且其他names...

2019-07-23 21:26:42 188

原创 03__C++内存管理

(一)C++的内存管理前言:提到内存管理,大概会想到:堆、栈、内存、溢出全局变量、局部变量、静态变量、智能指针、new、deletet、malloc、初始化、NULL等等。还会想到一句话:记得释放不用的资源,避免资源泄露!我认为:C/C++是操作十分丰富的语言,但只要长期规范使用,就OK了。另外,需要对一些基本概念了然于胸,如:(1)不同变量的内存分配位置,访问权限、生命周期;(2...

2019-07-23 21:14:36 162

原创 00__C++前言

曾听闻C++是最难学的计算机语言,或许从C++ Prime的厚度以及C++系列丛书就可见一般。我想这难度对于小白来说是有一定道理的。当我学习C++的时候,感觉蛮简单的,究其原因,大概是我用了几年C,有点python和Java面向对象基础,加之数据结构等过往吧。 任何计算机语言都只是一门工具,只要懂其规则(一般人不用涉及编译原理)去解决实际问题就好,学习能力才是真正...

2019-07-20 21:51:14 274

原创 02__C++面向对象

(一)初窥类与对象1.示例democlass class_name{ int x = 0;public: class_name(); ~class_name(); friend void friendfunc(int x); int a = 1; void func(); protcted: int b = 2;p...

2019-07-20 21:34:55 254

原创 01__C++语法基础

1.demo示例#include <iostream>using namespace std;// main() 是程序开始执行的地方int main(){ cout << "Hello World"; // 输出 Hello World return 0;}2.头文件 no .h3.命名空间如:using namespace st...

2019-07-20 21:05:31 247

原创 驱动调试简记

(一)SLCAN(1)kernel config:can、slcan、can-raw modules。可lsmod查看;(2)USB转串口设备驱动是否已加载;(3)lsusb探测USB转串口设备(主要是VID、PID);(4)bitrate参数等:CAN:-s3 UART:9600;(5)功能测试;(6)硬件确认,USB-UART{TX RX},使用minicom等工...

2019-06-25 09:53:27 320

原创 OpenSSL之DES算法提取

背景:在一个项目的应用端需要将明文做DES加密处理,并传给设备端,但是在嵌入式设备的存储空间一般有限,且只用到了DES算法,故链接库的方案并不可取,所以需要将DES算法的相关代码提取出来,直接加到应用程序中。以OpenSSL为例,DES算法在OpenSSL中依赖并不多,提取并不复杂,大致分为以下两步:(一)提取DES算法函数,如加密函数等;(二)提取DES算法相关数据结构和宏定义。...

2019-06-21 22:23:09 483

原创 python3基础测试之语句

三、语句(一)if(二)while(三)for#! /usr/bin/env python3# -*- coding:utf-8 -*-#ifprint("************************if test")val = int(input("Please input a number:"))if val > 10: print("value={va...

2019-06-21 22:08:49 263

原创 python3基础测试之I/O、序列

一、I/O(一)print>>> print(str("carl"))carl>>> print(repr("carl"))'carl'>>> print("hello" + ' ' + "carl")hello carl>>> print("hello" + ' ' + "Mr.{}".format("car...

2019-06-21 22:01:38 456

原创 在windows 10 下安装配置使用调试VSCODE

描述:再windows 10 下使用vscode进行C/C++编码和调试。version: sys:windows 10 vscode:VSCodeUserSetup-x64-1.35.1 mingw:x86_64-8.1.0-release-posix-sjlj-rt_v6-rev01.安装vscode、mingw64参考:https://www.cnblogs....

2019-06-16 17:17:20 489

原创 基于动态库的C语言环境配置方法(配合shell使用更佳)

背景:前几天接到一个需求:在Linux下基于openssl的SM2算法实现对SE芯片签名的验签,并制作Linux版验签工具。暂且不论SM2 Verify算法及其过程,要实现验签得有sign、pubkey、userid、msg等吧,这些data必须动态加载才能满足客户需求,最常见的方法是使用文件I/O的方式,读取参数,但是这样做,你不仅要使用文件I/O,还要解析参数,会增加代码的复...

2019-06-01 13:10:30 319

原创 learn python 0:WIN10环境下安装和基本使用(Anconda)最新

在WIN10环境下安装Anconda 并初步使用:(一)安装和配置Anconda(二)使用Anconda1.查看anconda版本:conda --version //见下tip12.更新:conda upgrade --all //见下tip23.创建一个环境:conda create --name env_name env_packet4.查看已存在的环境...

2019-05-03 17:57:02 557

原创 记一次升级python3引起的Ubuntu16.04不能启动

前言:笔者想在Ubuntu16.04下练习python,又看到自己系统中的python3为3.4版本,鬼使神差的区升级为3.6版本。做了如下的操作:(1)sudo apt-get install python3.6 (2)apt-get remove python3.4 && sudo apt-get autoremove python3.4(3)更改/...

2019-05-03 14:31:41 422

原创 基于C语言的传输协议封包、发包实现

前言:本实例中以APDU协议为例进行封包和发包(这里的发包以一个报文为单位,在实际工作中应该是以实际带宽决定吧)。#include <stdio.h>#include <string.h>#include <stdlib.h>//SYS#define MTU_DATA 16#define MTU (MTU_DATA + 6)//USER#...

2019-05-01 16:53:27 3402

原创 回调函数分层编码(基于C语言)

前言:这个回调实例分三层:底层为任务函数实现层;核心层为数据结构和任务注册/注销层;上层为应用层。底层://///////////////////////////task_def.c/////////////////////////////////#include <stdio.h>voidtask1(int x, char y, void * ptr){ ...

2019-05-01 16:49:33 827

原创 览书记之汽车电子信息技术

书名:汽车电子信息技术作者:王永富等出版社:科学出版社 最开始知道汽车电子还是大二的时候学单片机,隐约知道一辆汽车里有很多的单片机在控制它,不甚懂。后来在一些资料里看到CAN这个名词,并且知道了CAN是一种控制器局域网总线,广泛应用在汽车电子信息通信中。去年实习的时候调试过一款SBC上的UART转CAN驱动(Linux环境),了解了UART转CAN的原理和再Linux下...

2019-03-17 14:41:37 314 5

原创 循环队列(解决顺序队列的假溢出现象)(基于C语言)

/*循环队列*/#include &lt;stdio.h&gt;#include &lt;stdlib.h&gt;#define MAX_QUEUE_CYCLE_SIZE 10typedef struct queue_cycle{ int *base; //保存数组基地址 int f; int r; int queue_cycle_size;}node, *queue_c...

2019-03-05 12:20:46 8332

原创 二分法查找顺序数组(C语言实现)

#include &lt;stdio.h&gt;#include &lt;string.h&gt;#define MAX_NUM 5static intdichotomy_check_the_number(int *array, int value, int size){ int min, mid, max, ret; ret = -1; min = 0; max = s...

2019-03-04 19:03:02 1652

git入门学习实验笔记

git学习的实验笔记 在Linux上从零开始用实验验证每一个命令的用法,以及思考验证。

2018-01-15

GNU+Make项目管理(第三版)

这是一本学习编写Makefile的书,这本书从入门的规则,变量等方面结合实例重点讲解,最后整体讲解如何管理大型项目等。

2017-07-05

空空如也

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

TA关注的人

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