自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(14)
  • 资源 (1)
  • 收藏
  • 关注

原创 pugixml输出至string

pugixml处理了半天发现输出至string很不方便,官方文档操作如下:// 这里麻烦的是需要自己定义struct xml_string_writer: pugi::xml_writer { std::string result; virtual void write(const void* data, size_t size) { result.append(static_cast<const char*>(data), size);

2022-03-31 00:27:44 860

原创 C++智能指针shared_ptr、unique_ptr和weak_ptr

引言: 在C++中,常使用动态内存,一般情况下常使用new申请,delete释放。常见的三种情况有:程序不知道自己需要使用多少对象 程序不知道所需对象的准确类型 程序需要在多个对象间共享数据(申请的动态内存不会随着指针作用域的结束而自动释放)new分三步执行:1.调用malloc申请动态内存;2.调用传入类型的构造函数;3.判断是否有异常并将其抛出。delete原理相似例...

2019-01-16 20:46:36 438

原创 Shell脚本调试方法

Shell提供了一些用于调试脚本的选项,如:-n 读一遍脚本中的命令但不执行,用于检查脚本中的语法错误。-x 提供跟踪执行信息,将执行的每一条命令和结果依次打印出来。-v 一边执行脚本,一边将执行过的脚本命令打印到标准错误输出(我理解的应该是为了达到无缓冲的目的)。 关于-x的使用方法:(指的三选一,并不是说比如在方法1中传入-x参数,才可以使用方法3)1.在命令行提供参数...

2019-01-09 12:48:02 564

原创 CS模型epoll和线程池实现服务器高并发

使用信号量对主线程和线程处理函数进行线程同步,当线程处理函数读取完套接字的数据后通知信号量解除主线程的阻塞,开始处理下一个事件。 定义结构体dealinfo用来传送文件描述符和字符串地址。 注意一点,不能在线程处理函数中关闭不需要的文件描述符。不然会发生惊群现象 "threadpool.h"头文件是用来实现线程池的 服务器实现的功能是把客户端发来的字符串转大写#include&lt;s...

2019-01-04 18:03:09 661

转载 CS模型下的服务器高并发,线程和进程实现框架

实现的功能是把客户端发过的字符串转化为大写回写给客户端。多进程server.c#include&lt;stdio.h&gt;#include&lt;stdlib.h&gt;#include&lt;string.h&gt;#include&lt;unistd.h&gt;#include&lt;ctype.h&gt;#include&lt;arpa/inet.h&gt;#incl...

2018-12-30 23:18:18 680

原创 C++类初始化问题的全面解析

类的初始化,用到的会有默认构造函数,带参构造函数和拷贝构造函数。(并不包含赋值函数)如下class A{public: A():x(0),y(0){}; A(int a, int b) :x(a), y(b){}; A(const A &amp;other) { x = other.x; y = other.y; } A &amp;operator=(const A ...

2018-12-22 23:17:42 314

原创 c++中extern关键字和static的作用域的学习

之前对static修饰变量后作用域的问题一直是大体了解,感觉和普通变量的作用域并没有什么区别。聚个栗子在A.h中:#pragma oncestatic int a=365;class A{public: A(); ~A();};在main.c中:#include&lt;iostream&gt;#include"A.h" using namespace std;...

2018-11-30 12:20:23 217

原创 全排列 给定一个没有重复数字的序列,返回其所有可能的全排列。

比较经典的回溯算法,用了之后记得要标记出来。标记后下一轮记得重置class Solution {public: vector&lt;vector&lt;int&gt;&gt; permute(vector&lt;int&gt;&amp; nums) { vector&lt;vector&lt;int&gt;&gt; res; if(nums.empt...

2018-10-07 22:10:00 5001 1

原创 生成括号 给出 n 代表生成括号的对数,请你写出一个函数,使其能够生成所有可能的并且有效的括号组合。C++

核心是必须要先有一个左括号才能给字符串添加括号,且无论何时右括号的个数一定要小于等于左括号的个数而且函数参数最好不要使用引用,方便临时变量的赋值。C++代码如下class Solution {public: vector&lt;string&gt; generateParenthesis(int n) { vector&lt;string&gt; res;...

2018-10-07 21:21:33 3232

原创 C++每个节点的右向指针(用二级指针操作指针)

核心就是用二级指针操作指针,现有一个一级指针TreeLinkNode *p1;二级指针 TreeLinkNode **p2=&amp;p1;什么意思呢,就是一级指针取地址后传递给二级指针让他保存我的地址,不要多想,就是这么简单。好,现在呢单p2这两个字母,就是一个二级指针了。那么p1==*p2懂了吧,(p2用*取出对应地址里面的东西),也有(实际里边放置的玩意儿)==*p1==**...

2018-09-04 18:30:27 174

原创 请判断一个链表是否为回文链表。

思路是按序转成vector向量,方便随机访问示例 1:输入: 1-&gt;2输出: false示例 2:输入: 1-&gt;2-&gt;2-&gt;1输出: trueclass Solution {public: bool isPalindrome(ListNode* head) { ListNode* temp=head; ...

2018-08-12 22:27:33 917

原创 C++编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串 ""。

(这篇文章提供了一个最简单的方法,有兴趣的朋友可以去学习下字典树的使用,对于处理较大的数据是以个非常好的方法)设置一个临时变量保存第一个字符串的每一位就可以了,比较第2-n个字符串的是否一直相等是的话保存,不是的话返回之前的字符串。可能三个字符串完全相同,所以最后还应该有一个return 示例 1:输入: ["flower","flow","flight"]输出: "fl"...

2018-08-07 15:34:12 3279

原创 报数序列是指一个整数序列,按照其中的整数的顺序进行报数,得到下一个数。C++

//细心一点就可以做出来,重点是int和char与string的拼接。char一定要直接+,不能使用to_string,不然会乱码1. 12. 113. 214. 12115. 1112211 被读作  "one 1"  ("一个一") , 即 11。11 被读作 "two 1s" ("两个一"), 即 21。21 被读作 "one 2",...

2018-08-07 15:03:07 2497

原创 c++给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序

新建一个等长全为0的向量,遍历目标向量,不是0就输入进去class Solution {public: void moveZeroes(vector&lt;int&gt;&amp; nums) { vector&lt;int&gt; result(nums.size(),0); int j=0; for(int i:n...

2018-08-03 21:18:47 4247

线程池源码

包含了线程池实现的头文件和源码。对于线程管理来说是一个非常好的方案

2019-01-04

空空如也

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

TA关注的人

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