- 博客(16)
- 收藏
- 关注
原创 排序算法以及复杂度介绍
排序算法以及复杂度介绍各种排序复杂度选泽: o(n)好 o(N^2)平均 o(n^2)坏 辅助空间o(1)不稳直接插入: o(n)好 o(N^2)平均 o(n^2)坏 辅助空间o(1)稳定冒泡: o(n)好 o(N^2)平均 o(n^2)坏 辅助空间o(1)稳定堆排序: o(nlog n...
2018-06-28 17:18:45 153
原创 字符串的一些函数和问题
字符串的一些函数和问题strcat(str1,str2){} 字符拼接函数。char*p="hello";char q[]="hello";这里p是在rodata上存放的hello如果拿p作为实参是有问题的。所以传入的都是q。因为q这样用数组保存结尾会自动加上/0的。str1的空间必须足够的大。strcat在高版本用strcat_s,...
2018-06-28 14:33:54 161
原创 io复用
io复用五种io:io复用阻塞i/o非阻塞i/o信号驱动i/o异步i/o前4种是同步io最后一种才是真正的异步io同步IO和异步IO的区别就在于:数据访问的时候进程是否阻塞!阻塞IO和非阻塞IO的区别就在于:应用程序的调用是否立即返回!同步异步在于双方的配合消息的通信机制阻塞与非阻塞在于一端对待某个调用的态度,等待返回的状态。...
2018-06-24 12:07:01 184
原创 网络编程api简介
server:int main(){ int sockfd=socket(AF_INET,SOCK_STREAM,0);//(1)头文件sys/socket.h,建立套接字 assert(sockfd!=-1); struct sockaddr_in saddr,caddr;//(2)给建立的套接字设置属性用于绑定 memset(saddr,0,sizeof(saddr)); saddr.sin...
2018-06-24 11:35:52 258
原创 TCP协议
TCP协议TCP网络编程大纲: TCP面向连接 字节流 可靠传输 | 优化算法Nagle | 3次握手 无消息保护边界 确认应答 - TCP头部结构(头部的选项讲解一下扩大因子3和最大报文长度2)-PSH以及窗口大小-TCP数据(交互数据&成块数据)4次挥手 ...
2018-06-24 11:29:04 174
原创 网络层IP协议介绍
网络层协议介绍*******ip网络结构(历史)********网络层信息传输两种:电信电话:虚电路服务:电信网采用交换机,建立链接的,osi(七层)体系支持者曾经推行过。如今:数据报服务:无连接不可靠,减少了路由器成本(原因就是把报文乱序缺失流量控制交给了主机处理(电脑))*网络层协议(ICMP,IGMP) IP(ARP,RARP)...
2018-06-24 10:40:25 637
原创 静态库与共享库
静态库与共享库静态库与共享库的区别:1.静态库使用发生在静态链接共享库发生在动态链接。2.静态库.a在linux为后缀,静态库的代码是完全在静态链接的时候拷贝的,因此代码量比较大。动态库是在运行时候才加载到内存当中的,如果动态库创建时候使用-fPIC那么内存中只有一份代码。3.静态库不利于维护,而共享库利于维护,因为我们的共享...
2018-06-23 16:57:54 187 1
原创 linux各种命令归类简介
linux各种命令归类1.文件cp 拷贝命令 cp a.c b.crm 删除命令 -r删除目录mv 剪切命令 mv a.c b.cvi编辑命令cat打印命令tail查看文档尾部awk功能较为复杂后跟正则表达 awk -F":" '{print $1}' file(输出文件第一列(域),分割符是:,不加-F":"就是默认空格分隔。print...
2018-06-23 16:35:51 309
原创 堆内存管理
堆内存管理**********************堆内存分配我们c++中的new和delete都是调用c中的malloc和free来经行工作的因此malloc底层的行为方式就对于理解堆来讲至关重要。(sbrk brk mmap munmap)为我们底层的几个系统调用**sbrk&brk小于128k的mall...
2018-06-23 14:16:48 200
原创 继承与多态常见问题
继承与多态常见问题1.派生类内存布局,继承了基类什么东西是先基类后派生类,并且继承了名字作用域和除析构构造以外的所有方法2.继承的东西访问限定,(就是限定的取最小值(4种),基类private是不可见)3.派生类对象的构造方式 Derive d(10)(调用base成员对象构造函数(Base初始化列表里面),在Base构造...
2018-06-22 13:19:35 486
原创 智能指针区别与使用
智能指针区别与使用智能指针(类模板):推荐博客:http://bolg,csdn.net/kongkongkkk/article/details/75135327智能指针生存的意义就是为粗心的程序员以及不合理的程序,例如异常情况跳出了某一个空间的释放代码段没有执行释放内存的代码。而使用智能指针则为了让指针自动处理以上问题保证内存...
2018-06-21 16:43:46 919
原创 STL中nginx内存池
STL中nginx内存池相关文章:https://wenku.baidu.com/view/a13f31751ed9ad51f01df218.htmlhttps://blog.csdn.net/bossxu_linuxer/article/details/55657284******nginx物理结构|last|end|next|fail| ma...
2018-06-20 20:27:48 248
原创 c++的STL库
c++STL库*************************容器的底层:*******容器 *vector向量容器(数组)底层是一个固定大小数组,2倍的大小增加空间,当我们数组大小超过了再去做push_back,则会先开辟2倍空间在把原来的东西移过来再析构原来对象释放原来空间。operator[] vec1.sw...
2018-06-20 20:10:23 809
原创 类与对象的几种问题
类与对象的几种问题1.函数指针和函数名调用函数有什么区别? 函数指针可以在不确定函数时候放一个函数指针,调用时用到谁指向谁,还有就是inline函数指针是不会处理内敛函数的。2.c里面struct是不能定义空结构体 而且默认为public,c++中struct和class代表类 空的化占一个字节3.他们使用_thiscall调用约定,...
2018-06-20 20:07:33 310
原创 c与c++的不同
c与c++的区别1.调用约定的不同c函数采用c调用约定c++采用thiscall调用约定,这导致了c++成员函数调用的时候会多产生一个this指针。并且他在数字签名上也对于其产生了很大的不同。c的函数fun(int a)在符号表中为_fun(),而c++为fun(int)加入了形参类型,这也是静多态重载会发生的最大原因。2.带默认值的函数c9...
2018-06-20 18:24:12 200
原创 内存布局与堆栈调用
内存布局与堆栈调用/////////////////内存布局/////////////////////////程序的内存布局kemel space内核stack栈dynamic libraries动态加在空间heap堆read/write sections数据段.bss.datareadonly sections代码段.tex...
2018-06-20 17:08:26 286
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人