- 博客(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
原创 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 <stdio.h>#include <stdlib.h>#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 <stdio.h>#include <string.h>#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
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人