自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

xiaobai

转载请注明

  • 博客(162)
  • 论坛 (3)
  • 问答 (1)
  • 收藏
  • 关注

转载 struts2中struts.xml中的package标签里的namespace的作用

name="ajax"namespace="/json"name="ajaxLogin"这三个怎么去理解啊 .----------------------------1.package中的name只是一个标识,你可以随意命名;2.action中的name对应你页面中的一个action跳转,比如你页面有个表单提交:3.namespace是用于区分包中相同的类,如果没写,说明该包为默认空间,如果写了(如这个例子),那么就说明包ajax的空间为/json。namespace实际上是在包的基..

2020-05-22 12:18:55 66

原创 再论单例模式 之 懒汉模式

之前的一篇单例模式帖子:https://blog.csdn.net/weixin_41318405/article/details/84586957这次探讨懒汉模式细节问题。先来看一段代码class Data{public: Data() { std::cout << this << "Data()\n"; } ~Data() { st...

2019-08-29 12:37:46 70

原创 std::map循环遍历删除元素出现诡异现象

std::map<int, int,cmp> m1{ { 1, 1 }, { 3, 3 }, { 2, 2 } }; m1.insert(std::make_pair(4, 4)); for (auto it = m1.begin(); it != m1.end();) { if (it->first == 3 || it->first == 2) m...

2019-08-26 14:32:03 111 2

原创 C++11提供智能指针shared_ptr是不是线程安全的

“Boost文档对于shared_ptr的线程安全有一段专门的记述,内容如下:shared_ptrobjectsofferthesamelevelofthreadsafetyasbuilt-intypes.Ashared_ptrinstancecanbe"read"(accessedusingonlyconstoperations)simult...

2019-08-10 15:13:40 1180 3

原创 什么函数不能声明为虚函数?

构造函数、普通函数、inline函数、静态成员函数、友元函数1、构造函数:因为对象在运行初始化的过程中通过构造函数填充对象前四个字节为虚函数表指针,所以说构造函数是不可以给我虚函数的。2、普通函数:在实现多态调用虚函数的原理中,第二步是通过ecx寄存器传递this指针,然而普通函数没有this指针,所以不可以作为虚函数。而且普通函数是不可以被重写的。3、inline函数:内联函数是在编...

2019-08-09 22:36:58 96

原创 shell脚本语言四大剑客

一、cut指令使用方式:cut [-d -f ] [filename]常用参数介绍:-d :自定义分隔符,默认为制表符。 -f :与-d一起使用,指定显示哪个区域。1、cut 命令从文件的每一行剪切字节、字符和字段并将这些字节、字符和字段写至标准输出。2、如果不指定 File 参数,cut 命令将读取标准输入。必须指定 -b、-c 或 -f 标志之一。二、sed指...

2019-07-11 17:09:29 137 2

原创 collect2: error: ld returned 1 exit status,[abi:cxx11]'被多次定义

ubuntu使用cmake报错形式:CMakeFiles/finder.dir/finder_udp.cpp.o:(.bss+0x0): `m_[abi:cxx11]'被多次定义CMakeFiles/finder.dir/finder.cpp.o:(.bss+0x0):第一次在此定义collect2: error: ld returned 1 exit statusCMakeFiles/...

2019-07-11 09:29:53 533

转载 ioctl获取接口名称、IP地址、MAC地址、广播地址等

http://blog.markloiseau.com/2012/02/get-network-interfaces-in-c/http://www.doctort.org/adam/nerd-notes/enumerating-network-interfaces-on-linux.htmlhttp://www.geekpage.jp/en/programming/linux-network...

2019-06-28 19:20:17 153

转载 一些linux网络API

索引:1.字节序函数2.字节操作函数3.地址转换函数4.readn、writen和readline5.测试描述符类型6.socket函数7.connect函数8.bind函数9.listen函数10.accept函数11.close函数12.getsockname和getpeername13.select函数14.shutdown函数15.pselect函数16....

2019-06-28 19:19:34 102

转载 cmake入门详解

什么是cmake你或许听过好几种 Make 工具,例如 GNU Make ,QT 的 qmake ,微软的 MSnmake,BSD Make(pmake),Makepp,等等。这些 Make 工具遵循着不同的规范和标准,所执行的 Makefile 格式也千差万别。这样就带来了一个严峻的问题:如果软件想跨平台,必须要保证能够在不同平台编译。而如果使用上面的 Make 工具,就得为每一种标准写一次 ...

2019-06-28 11:16:08 968

原创 错排问题

错排问题,推导如下,若前n-1个数已经满足错排,现考虑第n个数:(1)第n个数可以和前n-1个中任意一个数互换,结果仍然是错排,所以有(n-1)*D(n-1)种;(2)第n个数可以放到前n-1任意一个位置,但是原来位置的数不能放到最后,则其只可以能放在其他n-2个位置,并且保证这n-2的位置是错排,所以有(n-1)*D(n-2)综上,一共有 D(n) =(n-1)*(...

2019-06-16 23:39:46 477

转载 IP地址、子网掩码、网络号、主机号、网络地址、主机地址

IP地址:4段十进制,共32位二进制,如:192.168.1.1 二进制就是:11000000|10101000|00000001|00000001子网掩码可以看出有多少位是网络号,有多少位是主机号: 255.255.255.0 二进制是:11111111 11111111 11111111 00000000网络号24位,即全是1 主机号8位,即全是0129.168.1.1 /24 这个、24就...

2019-06-16 22:17:10 2233

原创 求和——牛客网

输入两个整数 n 和 m,从数列1,2,3.......n 中随意取几个数,使其和等于 m ,要求将其中所有的可能组合列出来输入描述:每个测试输入包含2个整数,n和m输出描述:按每个组合的字典序排列输出,每行输出一种组合示例1输入5 5输出1 42 35这道题就是一道典型的动态规划问题了,思路和背包问题差不多,m就相当于背包能容纳的重量了,就...

2019-06-16 10:57:13 639

原创 0-1背包问题

学习视频地址:https://www.bilibili.com/video/av36136952?from=search&seid=17348588259873258936问题描述:给定N个物品,每个物品有一个重量W和一个价值V.你有一个能装M重量的背包.问怎么装使得所装价值最大.每个物品只有一个.#include <iostream>using n...

2019-06-05 14:37:25 89

转载 如何实现限制上传或下载速度

转载: https://blog.csdn.net/wk_bjut_edu_cn/article/details/86506846

2019-05-24 18:57:08 1939

原创 整型转字符串方法

string to_string (int val);string to_string (long val);string to_string (long long val);string to_string (unsigned val);string to_string (unsigned long val);string to_string (unsigned long long ...

2019-05-21 19:21:40 415

原创 网络编程中read函数和write函数使用规范

字节流套接字上的read和write函数所表现的行为不同于通常的文件IO。字节流套接字上调用read和write输入或输出的字节数可能比请求的数量少,因为内核中用于套接字的缓冲区是有限制的,需要调用者多次调用read或write函数。提示:readn、writen和readline是对read和wirte的封装。readn(int fd,void *vptr, size_t n)从...

2019-05-21 10:54:30 874

原创 Linux条件变量pthread_cond_wait函数为什么需要一个互斥锁

条件等待是线程间同步的一种手段,如果只是一个线程,条件不满足,那么会一直等待,造成死等。所以需要另外的线程改变条件,显然这个条件是共享变量,需要被保护。所以需要互斥锁来保护条件的改变,所以可以设计出一下代码:pthread_mutex_lock(&mutex);while(条件错误){ pthread_mutex_unlock(&mutex); pthrea...

2019-05-20 19:57:53 495

转载 openssl数据加密代码完整实现

转载:https://www.linuxidc.com/Linux/2014-04/99851.htm本例是用C语言实现的加密和解密,读取一个文本文件,对内容加密后写入到另一个文件中,然后再解密,写入到第三个文件中。#include <stdio.h>#include <string.h>#include "openssl/evp.h"#include ...

2019-05-18 23:46:59 374

转载 加密、解密原理和openssl自建CA过程详解

一、加密和解密相关知识简介1、信息安全标准NIST(National Institute of Standards and Technology)美国国家标准与技术研究院,制定了网络信息安全与保密的三个要素:保密性(confidentiality):信息不泄露给非授权用户、实体或过程,或供其利用的特性。(一般包括数据保密性、隐私性。)完整性(Integrity):数据未经...

2019-05-18 23:43:31 124

原创 在线OJ——牛客网

目录项目简述项目核心功能核心功能介绍项目改进项目简述模拟实现牛客网、leetcode题目管理和在线编译等功能项目核心功能在线编译 题目管理核心功能介绍在线编译获取要编译的代码临时文件 调用g++进行编译,记录编译结果到临时文件 运行可执行程序,执行测试用例,记录执行结果 将临时文件结果打包,响应用户题目管理(通过文件管理,后续MySQL管理)...

2019-05-14 16:40:52 2537 1

转载 银行家算法

死锁避免——银行家算法的应用背景要想说银行家,首先得说死锁问题,因为银行家算法就是为了死锁避免提出的。那么,什么是死锁?简单的举个例子:俩人吃饺子,一个人手里拿着酱油,一个人手里拿着醋,拿酱油的对拿着醋的人说:“你把醋给我,我就把酱油给你”;拿醋的对拿着酱油的人说:“不,你把酱油给我,我把醋给你。”于是,俩人这两份调料是永远吃不上了。这就是死锁。那么,为啥这个算法叫银行家算法?因为这个...

2019-04-28 16:13:02 113

原创 删除排序数组中的重复项

26. 删除排序数组中的重复项class Solution {public: int removeDuplicates(vector<int>& nums) { if(nums.size()<2) return nums.size(); //直接在原数组上修改 int index = ...

2019-04-22 21:42:21 63

原创 IPV4与IPV6的区别

IPv4和IPv6的区别IPv4是32位,IPv6是128位,可以解决ip地址不足 IPv4和IPv6的兼容性较差,否则IPv6已经普遍了 IPv6会在网络层进行安全校验和数据加密,所以更安全 IPv6目前不支持NAT技术,因为IPv6已经解决了ip地址不足原文链接...

2019-04-21 19:10:40 236

转载 进程的状态与转换

进程在其生命周期内通常进程有以下三种状态:1) 运行状态:进程正在处理机上运行。在单处理机环境下,每一时刻最多只有一个进程处于运行状态。2) 就绪状态:进程已处于准备运行的状态,即进程获得了除处理机之外的一切所需资源,一旦得到处理机即可运行。3) 阻塞状态,又称等待状态:进程正在等待某一事件而暂停运行,如等待某资源为可用(不包括处理机)或等待输入/输出完成。即使处理机空闲,该进程也不能运行...

2019-04-19 11:33:45 85

原创 动态链接和静态链接

我们知道程序执行主要分为四步:预处理、编译、汇编和链接。预处理主要完成去注释、展开头文件、宏替换和条件编译。编译主要负责词法分析、语法分析、语义分析、源代码优化,生成目标代码、目标代码优化。生成汇编文件。汇编主要完成把我们的代码转化为机器可以识别的二进制代码。链接主要负责加载我们所引用的库代码。因为环境变量的存在,才使得程序知道所要链接的动态库或者静态库在哪。链接:分为静态链接和动态链接...

2019-04-19 00:16:21 47

原创 五种IO模型

IO操作包含两步:等待和拷贝;同一时间内,等待时间占得比重大,称此为低效IO。反之,称为高效IO。阻塞IO 内核将数据准备好之前,系统调用会一直阻塞。 除非特被指定,大部分套接字都是阻塞的。这样一来,如果单线程(进程)处理进行send时候发生阻塞,那么就不会处理其他的请求,造成永久阻塞。解决这个问题可以使用多进程或者多线程。让每一个连接独立send,这样一来...

2019-04-16 12:46:23 40 2

原创 8. 字符串转换整数 (atoi)

8. 字符串转换整数 (atoi)class Solution {public: int myAtoi(string str) { if(str.empty()) return 0; int result = 0; int sign = 1; auto begin = str.begin();...

2019-04-16 00:36:57 55

原创 最长公共子串,最长公共子序列

一、583. 两个字符串的删除操作分析:此题其实由最长公共序列变化而来,所以只需要知道最长的公共子序列即可求得至少需要多少步,使得两个字符串相等。参考:https://blog.csdn.net/u012102306/article/details/53184446#class Solution {public: int minDistance(string word1...

2019-04-14 17:35:05 69

原创 72. 编辑距离

题目: 给定两个单词 word1 和 word2,计算出将 word1 转换成 word2 所使用的最少操作数 。你可以对一个单词进行如下三种操作:插入一个字符删除一个字符替换一个字符示例 1:输入: word1 = “horse”, word2 = “ros”输出: 3解释: horse -> rorse (将 'h’替换为 ‘r’)rorse -> rose (...

2019-04-14 15:58:16 75

原创 877. 石子游戏 and 174. 地下城游戏

亚历克斯和李用几堆石子在做游戏。偶数堆石子排成一行,每堆都有正整数颗石子piles[i]。游戏以谁手中的石子最多来决出胜负。石子的总数是奇数,所以没有平局。亚历克斯和李轮流进行,亚历克斯先开始。 每回合,玩家从行的开始或结束处取走整堆石头。 这种情况一直持续到没有更多的石子堆为止,此时手中石子最多的玩家获胜。假设亚历克斯和李都发挥出最佳水平,当亚历克斯赢得比赛时返回true,...

2019-04-13 21:27:31 130

原创 41. 缺失的第一个正数

给定一个未排序的整数数组,找出其中没有出现的最小的正整数。示例1:输入: [1,2,0]输出: 3示例2:输入: [3,4,-1,1]输出: 2示例3:输入: [7,8,9,11,12]输出: 1class Solution {public: int firstMissingPositive(vector<int>&am...

2019-04-12 17:15:05 41

原创 647. 回文子串 and 91. 解码方法

给定一个字符串,你的任务是计算这个字符串中有多少个回文子串。具有不同开始位置或结束位置的子串,即使是由相同的字符组成,也会被计为是不同的子串。示例 1:输入: "abc"输出: 3解释: 三个回文子串: "a", "b", "c".示例 2:输入: "aaa"输出: 6说明: 6个回文子串: "a", "a", "a", "aa", "aa", "aaa"....

2019-04-12 17:08:38 50

原创 696. 计数二进制子串

给定一个字符串s,计算具有相同数量0和1的非空(连续)子字符串的数量,并且这些子字符串中的所有0和所有1都是组合在一起的。重复出现的子串要计算它们出现的次数。示例 1 :输入: "00110011"输出: 6解释: 有6个子串具有相同数量的连续1和0:“0011”,“01”,“1100”,“10”,“0011” 和 “01”。请注意,一些重复出现的子串要计算它们出现的次数...

2019-04-12 16:10:15 57

原创 二叉搜索树的后序遍历序列

二叉搜索树的后序遍历序列输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则输出Yes,否则输出No。假设输入的数组的任意两个数字都互不相同。class Solution {public: bool VerifySquenceOfBST(vector<int> sequence) { if(sequence.empty...

2019-04-04 15:55:46 33

原创 二叉树的层序遍历

层序遍历从上往下打印出二叉树的每个节点,同层节点从左至右打印。/*struct TreeNode { int val; struct TreeNode *left; struct TreeNode *right; TreeNode(int x) : val(x), left(NULL), right(NULL) { }};*/class Solution ...

2019-04-04 15:18:36 37

原创 二叉树的镜像

二叉树的镜像/*struct TreeNode { int val; struct TreeNode *left; struct TreeNode *right; TreeNode(int x) : val(x), left(NULL), right(NULL) { }};*/class Solution {public: void Mirror(TreeNo...

2019-04-04 15:08:37 35

原创 重建二叉树

重建二叉树输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。/** * Definition for binary tree * struct TreeNode { * int ...

2019-04-04 14:43:40 48

原创 序列式容器——deque

双向队列deque:vector在逻辑上我们认为只能是一端插入和删除,但是deque是两端开口,两端都可以插入和删除,如下图:vector和deque比较:vector只能在一段插入和删除,而且插入效率较低,因为如果vector当前空间不足,需要进行三部曲(找一块足够大的空间空间,搬移元素,释放旧空间),所以效率低。而deque可以在两端插入删除,并且deque完全没有扩容三部曲。 ...

2019-04-03 17:58:45 57

原创 公共字串计算

公共字串计算链接:https://www.nowcoder.com/questionTerminal/98dc82c094e043ccb7e0570e5342dd1b来源:牛客网题目标题:计算两个字符串的最大公共字串的长度,字符不区分大小写详细描述:接口说明原型:intgetCommonStrLength(char*pFirstStr,char*pS...

2019-03-31 01:00:25 112

空空如也

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

TA关注的人 TA的粉丝

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