![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C和C++
文章平均质量分 52
心向朝阳-
这个作者很懒,什么都没留下…
展开
-
同步与异步、阻塞与非阻塞
同步与异步 阻塞与非阻塞 同步和异步仅仅是关注的消息如何通知的机制,而阻塞与非阻塞关注的是等待消息通知时的状态。也就是说,同步的情况下,是由处理消息者自己去等待消息是否被触发,而异步的情况下是由触发机制来通知处理消息者,所以在异步机制中,处理消息者和触发机制之间就需要一个连接的桥梁:在银行的例子中,这个桥梁就是小纸条上面的号码。在小明的例子中,这个桥梁就是原创 2016-04-25 14:57:54 · 306 阅读 · 0 评论 -
Vector迭代器的使用
要点:1、Vector迭代器使用erase删除元素之后迭代器指向删除元素的下一个;当删除元素是最后一个时,指向end();2、find()函数实现从某个范围内寻找某元素,find函数头文件是 #include vector::iterator itertemp = find(vec.begin(), vec.end() , 5); //在vec中寻找值为原创 2016-04-21 16:09:04 · 1649 阅读 · 0 评论 -
构造函数不能为虚函数
初步理解:1、虚函数是动态绑定,与多态相关,所以需要知道对象的类型,如果没有构造出对象怎么知道对象的类型,怎么执行虚函数;2、虚函数实现多态,最后只执行一个函数,而构造函数需要执行从基类到子类的各个构造函数,如果是虚函数,则只能执行一个构造函数,显然是有问题的,也是不能实现的。(后续待补充)原创 2016-04-21 16:30:42 · 317 阅读 · 0 评论 -
C++ 类的“三法则”
三法则:定义其中一个成员函数,那么程序员必须连其他二个成员函数也一同编写至类内,亦即下列三个成员函数缺一不可。 析构函数(Destructor) 复制构造函数(copy constructor) 复制赋值运算符(copy assignment operator) 理解点:用到自己写析构的话一般原创 2016-04-21 16:31:40 · 1445 阅读 · 0 评论 -
数组和指针的区别(a和&a以及&a[0]的区别)
一、一维数组*这里记住数组的首地址和数组首元素的地址是不一样的,虽然他们的值是一样的,但是代表的意思不一样;*数组 int a[5];* a是数组的共五个整形数据的内存的名字,是一块连续的地址的名字;* a代表首元素的地址同&a[0]是一样的;所以a+1代表的是第二个元素的地址* &a则是整个内存空间的地址,所以&a+1代表的是数组之后的另一块数原创 2016-04-21 16:32:06 · 797 阅读 · 0 评论 -
map元素的插入方式
map采用的是键值对的方式存储;元素插入方式有四种:分别是: [" "] = value;模式; make_pair(" " , value);模式 make_pair(" " , value)模式; map::value_type(" " , value);模式;举例所示:#in原创 2016-04-21 17:56:05 · 5577 阅读 · 0 评论 -
C++ 基础杂项
1、String 类: String是一个类,不同于C语言中的一个字符数组,他初始化的时候只有固定的大小,并没有为字符串分配内存空间,所以需要等到初始化字符之后才会为其分配内存,所以Sting大小只包含了对象的大小没有计算字符串的大小。 EG: string strtemp = "1234567";cout原创 2016-04-21 16:29:52 · 330 阅读 · 0 评论 -
send() 、 rev()、write()、read()笔记
1、TCP模式的send()数据发送原理: 假如socket的文件描述符被设置为阻塞方式,但是发送缓冲区没有足够空间容纳这个send所指示的应用层buffer的全部数据,那么能拷贝多少就拷贝多少,然后进程挂起,等到TCP对端的接收缓冲区有空余空间时,通过滑动窗口协议(ACK包的又一个作用----打开窗口)通知TCP本端:“亲,我已经做好准备,您现在可以继续向我发送X个字节的数据了”,然原创 2016-05-19 09:50:33 · 1040 阅读 · 0 评论