- 博客(19)
- 收藏
- 关注
转载 说说进程和线程的区别
进程是资源(CPU、内存等)分配的基本单位,它是程序执行时的一个实例。程序运行时系统就会创建一个进程,并为它分配资源,然后把该进程放入进程就绪队列,进程调度器选中它的时候就会为它分配CPU时间,程序开始真正运行。线程是程序执行时的最小单位,它是进程的一个执行流,是CPU调度和分派的基本单位,一个进程可以由很多个线程组成,线程间共享进程的所有资源,每个线程有自己的堆栈和局部变量。线程由CPU独立调度...
2018-07-03 15:35:01
422
转载 C语言 sizeof(struct)讲解
struct MyStruct { double dda1; char dda; int type }; 对结构MyStruct采用sizeof会出现什么结果呢?sizeof(MyStruct)为多少呢?也许你会这样求: sizeof(MyStruct)=sizeof(double)+sizeof(char)+sizeof(int)=13 但是当在VC中测试上面结构的大小时,你会发现sizeof(...
2018-07-03 15:30:56
11824
转载 类的大小——sizeof 的研究
先看一个空的类占多少空间? [cpp] view plain copyclass Base { public: Base(); ~Base(); }; 注意到我这里显示声明了构造跟析构,但是sizeof(Base)的结果是1. 因为一个空类也要实例化,所谓类的实例化就是在内存中分配一块地址,每个实例在内存中都有独一无二的地址。同样空类也会被实例化,...
2018-07-03 15:30:46
205
转载 socket编程简介
C++ Socket编程步骤 sockets(套接字)编程有三种,流式套接字(SOCK_STREAM),数据报套接字(SOCK_DGRAM),原始套接字(SOCK_RAW);基于TCP的socket编程是采用的流式套接字。服务器端编程的步骤:1:加载套接字库,创建套接字(WSAStartup()/socket());2:绑定套接字到一个IP地址和一个端口上(bind());3:将套接字设置为监听模...
2018-07-03 15:30:22
293
转载 multimap查找重复值的函数
场景:1. map在查找非数值索引(数值非重复索引可以使用vector)的对象时是高效率的,因为用的红黑树的实现,查找和插入都是logarithmic time 效率很高.2.map可以说是很实用的数据结构.3.使用multimap可以存储重复key,使用场景就是1对多的情况,比如一个联系人对应多个分组.[cpp] view plain copyvoid TestMap() { //m...
2018-07-03 15:30:07
2444
转载 C++中引用与指针的区别
一、引用的定义引用是给另外一个变量起别名,所以引用不会分配内存空间。引用的声明方法:类型标识符 &引用名=目标变量名;(如int &ptr = num;)二、引用与指针的区别1、指针是一个实体,需要分配内存空间。引用只是变量的别名,不需要分配内存空间。2、引用在定义的时候必须进行初始化,并且不能够改变。指针在定义的时候不一定要初始化,并且指向的空间可变。(注:不能有引用的值不能为N...
2018-07-03 15:29:52
153
转载 死锁的产生及避免
死锁是指在一组进程中的各个进程均占有不会释放的资源,但因互相申请被其他进程所站用不会释放的资源而处于的一种永久等待状态。死锁的四个必要条件:(1)互斥条件(Mutual exclusion):资源不能被共享,只能由一个进程使用。(2)请求与保持条件(Hold and wait):已经得到资源的进程可以再次申请新的资源。(3)非剥夺条件(No pre-emption):已经分配的资源不能从相应的进程...
2018-06-06 21:30:03
353
转载 TCP和UDP的优缺点及区别
TCP的优点: 可靠,稳定 TCP的可靠体现在TCP在传递数据之前,会有三次握手来建立连接,而且在数据传递时,有确认、窗口、重传、拥塞控制机制,在数据传完后,还会断开连接用来节约系统资源。 TCP的缺点: 慢,效率低,占用系统资源高,易被攻击 TCP在传递数据之前,要先建连接,这会消耗时间,而且在数据传递时,确认机制、重传机制、拥塞控制机制等都会消耗大量的时间,而且要在每台设备上维护所有的传输连接...
2018-05-30 11:01:49
402
1
转载 常用设计模式
单例模式简单点说,就是一个应用程序中,某个类的实例对象只有一个,你没有办法去new,因为构造器是被private修饰的,一般通过getInstance()的方法来获取它们的实例。getInstance()的返回值是一个对象的引用,并不是一个新的实例,所以不要错误的理解成多个对象。单例模式实现起来也很容易,直接看demo吧class Singleton { private: Singl...
2018-05-28 10:51:49
163
转载 面试中的红黑树问题
连续两次面试都问到了红黑树,关键两次都没有答好,这次就完整地来学习整理一下。没有学习过红黑树的同学请参考:<<Introduction to Algorithms>> Chapter 13 Red-Black Trees Chapter 14 Augmenting Data Structures教你透彻了解红黑树 1.stl中的set底层用的什么数据结构?2.红黑树的...
2018-05-24 18:50:33
2922
转载 mysql两种引擎简要比较
在MySQL数据库中,常用的引擎主要就是2个:Innodb和MyIASM。首先:1.简单介绍这两种引擎,以及该如何去选择。2.这两种引擎所使用的数据结构是什么。1.a.Innodb引擎,Innodb引擎提供了对数据库ACID事务的支持。并且还提供了行级锁和外键的约束。它的设计的目标就是处理大数据容量的数据库系统。它本身实际上是基于Mysql后台的完整的系统。Mysql运行的时候,Innodb会在内...
2018-05-24 18:46:01
128
转载 数据库锁与事物
事务并发控制我们从另外一个方向来说说,如果不对事务进行并发控制,我们看看数据库并发操作是会有那些异常情形,有些使我们可以接受的,有些是不能接受的,注意这里的异常就是特定语境下的,并不一定就是错误什么的。假设有一个order表,有个字段叫count,作为计数用,当前值为100第一类丢失更新(Update Lost):此种更新丢失是因为回滚的原因,所以也叫回滚丢失。此时两个事务同时更新count,两个...
2018-05-21 10:42:50
134
转载 C++ 多态的实现及原理(虚函数与纯虚函数)
C++的多态性用一句话概括就是:在基类的函数前加上virtual关键字,在派生类中重写该函数,运行时将会根据对象的实际类型来调用相应的函数。如果对象类型是派生类,就调用派生类的函数;如果对象类型是基类,就调用基类的函数 1:用virtual关键字申明的函数叫做虚函数,虚函数肯定是类的成员函数。 2:存在虚函数的类都有一个一维的虚函数表叫做虚表,类的对象有一个指向虚表开始的虚指针。虚表是和类...
2018-05-15 14:20:31
12285
1
转载 TCP/IP协议族之运输层(TCP流量控制和拥塞控制 )
TCP的流量控制1. 利用滑动窗口实现流量控制 如果发送方把数据发送得过快,接收方可能会来不及接收,这就会造成数据的丢失。所谓流量控制就是让发送方的发送速率不要太快,要让接收方来得及接收。 利用滑动窗口机制可以很方便地在TCP连接上实现对发送方的流量控制。 设A向B发送数据。在连接建立时,B告诉了A:“我的接收窗口是 rwnd = 400 ”(这里的 rwnd 表示 receiv...
2018-05-14 10:26:13
636
转载 HTTP各个状态返回值
1xx响应信息提示 这些状态代码表示临时的响应。客户端在收到常规响应之前,应准备接收一个或多个1xx • 100 - Continue 初始的请求已经接受,客户应当继续发送请求的其余部分。(HTTP 1.1新) • 101 - Switching Protocols 服务器将遵从客户的请求转换到另外一种协议(HTTP 1.1新) 2xx - 成功 这类状态代码表明服务器成功地接受了客户端请求。 •...
2018-05-11 18:07:32
940
转载 c++中的string常用函数用法总结
标准c++中string类函数介绍注意不是CString之所以抛弃char*的字符串而选用C++标准程序库中的string类,是因为他和前者比较起来,不必 担心内存是否足够、字符串长度等等,而且作为一个类出现,他集成的操作函数足以完成我们大多数情况下(甚至是100%)的需要。我们可以用 = 进行赋值操作,== 进行比较,+ 做串联(是不是很简单?)。我们尽可以把它看成是C++的基本数据类型。好了,...
2018-05-11 17:01:28
103
转载 c++ 数字与字符串的相互转换
首先推荐用用C++的stringstream。 主要原因是操作简单。数字转字符串,int float类型 同理#include <string>#include <sstream>int main(){ double a = 123.32; string res; stringstream ss; ss << a; ...
2018-05-11 16:59:46
3454
转载 TCP连接TIME_WAIT和CLOSE_WAIT状态
TCP协议的三次握手和四次挥手:注:seq:"sequance"序列号;ack:"acknowledge"确认号;SYN:"synchronize"请求同步标志;;ACK:"acknowledge"确认标志";FIN:"Finally"结束标志。 TCP连接建立过程:首先Client端发送连接请求报文,Server段接受连接后回复ACK报文,并为这次连接分配资源。Client端接收到ACK报文后.
2018-05-11 14:57:57
2558
转载 [LeetCode] Majority Element II 求众数之二(大于n/3)
Given an integer array of size n, find all elements that appear more than ⌊ n/3 ⌋ times. The algorithm should run in linear time and in O(1) space.Hint:How many majority elements could it possibly hav...
2018-05-11 14:47:32
339
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人