
C++
文章平均质量分 73
喜欢小阔爱
这个作者很懒,什么都没留下…
展开
-
TCP粘包解决方案
TCP粘包解决方案黏包的在客户端发送频率低的情况下粘包不明显,下面是原来的服务器中epoll一个事件可读的回调函数recvdata(event_infor *infor),当调用这个函数然后recv()函数读缓冲区的数据,指定大小为BUFF_MAX-1,而BUFF_MAX我设置为1024,一般单次接收数据小于这个值,所以基本上就是读取了所有缓冲区数据,接收过程:收到数据->epoll可读-...原创 2020-02-29 14:17:52 · 297 阅读 · 0 评论 -
linux chat 开发笔记(1)
linux chat 开发笔记回调函数的实现:function<> 初步认识用std::function<>实现头文件在#include <functional> 通过typedef std::function<void(event_infor *)> EventCallback; 宏定义一个EventCallback回调函数 <voi...原创 2019-11-03 14:42:38 · 619 阅读 · 1 评论 -
C++内存管理 笔记
1.分配内存2.在分配的内存上显示的调用构造函数3.显示的调用析构函数4.释放所申请的内存#include <iostream>#include <cstdlib>using namespace std;class A{public: A() { cout << "A"; } ~A() { cout <&...原创 2019-10-15 20:48:11 · 169 阅读 · 0 评论 -
刷题感悟
题目链接https://leetcode-cn.com/explore/interview/card/top-interview-quesitons-in-2018/265/linked-list/1148/第一次在web上写代码只出现一点语法错误,然后修改一下提交通过,以下是自己的算法:/** * Definition for singly-linked list. * struc...原创 2019-03-28 20:19:27 · 337 阅读 · 0 评论 -
L2-031 深入虎穴 (25 分)
著名的王牌间谍 007 需要执行一次任务,获取敌方的机密情报。已知情报藏在一个地下迷宫里,迷宫只有一个入口,里面有很多条通路,每条路通向一扇门。每一扇门背后或者是一个房间,或者又有很多条路,同样是每条路通向一扇门…… 他的手里有一张表格,是其他间谍帮他收集到的情报,他们记下了每扇门的编号,以及这扇门背后的每一条通路所到达的门的编号。007 发现不存在两条路通向同一扇门。内线告诉他,情报就藏在迷...原创 2019-04-02 18:58:57 · 1097 阅读 · 0 评论 -
next_permutation()实现
template<class T>bool my_next_permutation(T first, T last) { if (first == last) return false; if (first + 1 == last) return false; T i = last - 1; while (true) { T ii = i; i--; if (...原创 2019-05-05 21:30:05 · 812 阅读 · 3 评论 -
c++ 笔记
初始化列表: 初始化列表是一种C++初始化列表,有初始化阶段和计算阶段两个阶段。与其他函数不同,构造函数除了有名字,参数列表和函数体之外,还可以有初始化列表,初始化列表以冒号开头,后跟一系列以逗号分隔的初始化字段。从概念上来讲,构造函数的执行可以分成两个阶段,初始化阶段和计算阶段,初始化阶段先于计算阶段。删除函数:void test(char a) = delete;voi...原创 2019-05-14 14:03:00 · 593 阅读 · 1 评论 -
设计模式
观察者模式模板方法模式(Template Method Pattern)原创 2019-05-17 09:36:14 · 123 阅读 · 1 评论 -
可变参数模板(Variadic Templates)
#include<iostream>using namespace std;void test() {}template<typename T,typename...Types>void test(const T& f, const Types&... args){ cout << f << endl; cou...原创 2019-06-19 09:29:12 · 171 阅读 · 0 评论 -
heap的实现
#include <iostream>#include <vector>using namespace std;void make_heap(vector<int>::iterator begin, vector<int>::iterator end);void push_heap(vector<int>::iterator ...原创 2018-12-06 22:01:38 · 262 阅读 · 0 评论 -
STL 源码剖析笔记
stack: 在vs2017的stl源文件中stack模板为:template<class _Ty,class _Container = deque<_Ty> >class stack{ // LIFO queue implemented with a container............模板有两个参数,一个是储存的类型,另外一种是套用...原创 2018-12-06 17:22:14 · 216 阅读 · 0 评论 -
学习笔记
&通过使用引用来替代指针,会使 C++ 程序更容易阅读和维护。C++ 函数可以返回一个引用,方式与返回一个指针类似。当函数返回一个引用时,则返回一个指向返回值的隐式指针。这样,函数就可以放在赋值语句的左边。例如,请看下面这个简单的程序:Date& operator()(int m) 重载运算符返回本身Complex Complex::operator+(Complex...原创 2018-12-01 19:49:20 · 123 阅读 · 0 评论 -
L1-027. 出租
下面是新浪微博上曾经很火的一张图:一时间网上一片求救声,急问这个怎么破。其实这段代码很简单,index数组就是arr数组的下标,index[0]=2 对应 arr[2]=1,index[1]=0 对应 arr[0]=8,index[2]=3 对应 arr[3]=0,以此类推…… 很容易得到电话号码是18013820100。本题要求你编写一个程序,为任何一个电话号码生成这段代码 —— 事实上,只要生...原创 2018-05-07 20:55:16 · 173 阅读 · 0 评论 -
互评成绩
学生互评作业的简单规则是这样定的:每个人的作业会被k个同学评审,得到k个成绩。系统需要去掉一个最高分和一个最低分,将剩下的分数取平均,就得到这个学生的最后成绩。本题就要求你编写这个互评系统的算分模块。输入格式:输入第一行给出3个正整数N(3 < N ≤,学生总数)、k(3 ≤ k ≤ 10,每份作业的评审数)、M(≤ 20,需要输出的学生数)。随后N行,每行给出一份作业得到的k个评审成绩(在...原创 2018-05-08 09:56:26 · 366 阅读 · 0 评论 -
最大子列和问题
01-复杂度1 最大子列和问题(20 分)给定K个整数组成的序列{ N1, N2, ..., NK },“连续子列”被定义为{ Ni, Ni+1, ..., Nj },其中 1≤i≤j≤K。“最大子列和”则被定义为所有连续子列元素的和中最大者。例如给定序列{ -2, 11, -4, 13, -5, -2 },其连续子列{ 11, -4, 13 }有最大的和2...原创 2018-09-04 08:28:17 · 177 阅读 · 0 评论 -
leetcode 20.有效的括号
解决方案**思路**想象一下,你正在为你的大学课设编写一个小型编译器,编译器的任务之一(或称子任务)将检测括号是否匹配。我们本文中看到的算法可用于处理编译器正在编译的程序中的所有括号,并检查是否所有括号都已配对。这将检查给定的括号字符串是否有效,是一个重要的编程问题。我们这个问题中将要处理的表达式可以包含以下三种不同类型的括号:(), {} 以及 []在查看如何检查由这...转载 2018-10-09 12:32:15 · 365 阅读 · 0 评论 -
leetcode 179.最大数
给定一组非负整数,重新排列它们的顺序使之组成一个最大的整数。示例 1:输入: [10,2]输出: 210示例 2:输入: [3,30,34,5,9]输出: 9534330说明: 输出结果可能非常大,所以你需要返回一个字符串而不是整数。bool cmp(string a, string b){ return a+b<b+a; }class Solut...原创 2018-10-09 16:06:27 · 346 阅读 · 0 评论 -
leetcode加快运行时间作弊代码
leetcode 加快运行时间作弊代码今天在leetcode做题时看了别人4ms的代码时发现了一段神奇的代码,可以提高数据的读写速度,实测可以加快10ms用时 static const auto __ = []() // 最大子序列问题{ios::sync_with_stdio(false);// sync_with_stdio(false)是为了打断iostream输入输...转载 2018-10-10 19:47:40 · 3100 阅读 · 0 评论 -
对称二叉树
给定一个二叉树,检查它是否是镜像对称的。例如,二叉树 [1,2,2,3,4,4,3] 是对称的。 1 / \ 2 2 / \ / \3 4 4 3但是下面这个 [1,2,2,null,3,null,3] 则不是镜像对称的: 1 / \ 2 2 \ \ 3 3说明:如果你可以运用递归和迭代两种方法解...原创 2018-11-06 16:25:13 · 167 阅读 · 0 评论 -
c++异或运算的应用(找出现的奇数次的元素)
#include<iostream>using namespace std;int main() { char a[] = { 'a','b','c','a','b','a','b','a','b','c','b' }; int b = 0; for (auto i : a) { b = i^b; } printf("%c\n", b); return 0;}...原创 2018-11-21 09:03:14 · 341 阅读 · 0 评论 -
正整数A+B
7-1 正整数A+B(15 分)题的目标很简单,就是求两个正整数A和B的和,其中A和B都在区间[1,1000]。稍微有点麻烦的是,输入并不保证是两个正整数。输入格式:输入在一行给出A和B,其间以空格分开。问题是A和B不一定是满足要求的正整数,有时候可能是超出范围的数字、负数、带小数点的实数、甚至是一堆乱码。注意:我们把输入中出现的第1个空格认为是A和B的分隔。题目保证至少存在一个空格,并且B不是一...原创 2018-05-07 20:52:30 · 647 阅读 · 0 评论