
C++应用
newyoung
学无止境.
展开
-
C++ 中的 Virtual详解
Virtual是C++ OO机制中很重要的一个关键字。只要是学过C++的人都知道在类Base中加了Virtual关键字的函数就是虚拟函数(例如下面例子中的函数print),于是在Base的派生类Derived中就可以通过重写虚拟函数来实现对基类虚拟函数的覆盖。当基类Base的指针point指向派生类Derived的对象时,对point的print函数的调用实际上是调用了Derived的print函原创 2013-05-05 22:15:18 · 566 阅读 · 0 评论 -
SELECT的学习以及在socket中的应用
Select在Socket编程中还是比较重要的,可是对于初学Socket的人来说都不太爱用Select写程序,他们只是习惯写诸如 connect、accept、recv或recvfrom这样的阻塞程序(所谓阻塞方式block,顾名思义,就是进程或是线程执行到这些函数时必须等 待某个事件的发生,如果事件没有发生,进程或线程就被阻塞,函数不能立即返回)。 可是使用Select就可以完成非阻转载 2013-09-18 11:58:22 · 632 阅读 · 0 评论 -
基于TCP协议的网络程序(基础学习)
下图是基于TCP协议的客户端/服务器程序的一般流程:图 37.2. TCP协议通讯流程服务器调用socket()、bind()、listen()完成初始化后,调用accept()阻塞等待,处于监听端口的状态,客户端调用socket()初始化后,调用connect()发出SYN段并阻塞等待服务器应答,服务器应答一个SYN-ACK段,客户端收到后从connect()返回,同时应翻译 2013-09-18 15:56:03 · 820 阅读 · 0 评论 -
基于UDP协议的网络程序 (学习)
下图是典型的UDP客户端/服务器通讯过程(该图出自[UNPv13e])。图 37.3. UDP通讯流程以下是简单的UDP服务器和客户端程序。/* server.c */#include #include #include #include "wrap.h"#define MAXLINE 80#define SERV_PORT 8000int m翻译 2013-09-18 15:57:51 · 697 阅读 · 0 评论 -
指针的初始化总结
1. 字符指针的初始化在c语言中 "string"保存的就是首个字符所在的地址 所以可以把 字符串常量"string" 赋值给指针 char *p; p="string" 但不能把字符串常量直接赋给数组,需要用到 strcpy。 但可以对数组初始化为字符串,也就是字符数组。如 char str[] = "string"; 两种初始化的区别:char * p=转载 2013-10-09 14:08:48 · 1080 阅读 · 0 评论 -
socket中的select
使用select函数可以以非阻塞的方式和多个socket通信。程序只是演示select函数的使用,功能非常简单,即使某个连接关闭以后也不会修改当前连接数,连接数达到最大值后会终止程序。1. 程序使用了一个数组fd_A,通信开始后把需要通信的多个socket描述符都放入此数组。2. 首先生成一个叫sock_fd的socket描述符,用于监听端口。3. 将sock_fd和数原创 2013-10-09 17:45:48 · 656 阅读 · 0 评论 -
map的概念和用法详解
std map是STL的一个关联容器,它提供一对一(其中第一个可以称为关键字,每个关键字只能在map中出现一次,第二个可能称为该关键字的值)的数据处理能力,由于这个特性,它完成有可能在我们处理一对一数据的时候,在编程上提供快速通道。这里说下std map内部数据的组织,std map内部自建一颗红黑树(一种非严格意义上的平衡二叉树),这颗树具有对数据自动排序的功能,所以在std map内部所有转载 2013-11-14 15:51:49 · 1468 阅读 · 0 评论 -
QT 容器
[+]QT不仅支持C++的STL模板库,同时自己也定义了一套容器类和与之操作的算法类,使用QT定义的这一套库,可以使在各个平台的表现相同。QT的这些容器被设计为更轻便,更安全和更容易使用。容器类是隐含共享(implicitly)的,可重入(reentrant)的和线程安全的。为容器遍历提供了两种迭代器(java-style,STL-style),并且QT提供了foreach关键字,更加方便元素转载 2015-02-13 16:37:17 · 677 阅读 · 0 评论 -
C++设计模式
目录(?)[+]一、设计模式的分类总体来说设计模式分为三大类:创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。行为型模式,共十一种:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模转载 2015-02-13 13:48:28 · 954 阅读 · 0 评论 -
学习ioctl
一、 什么是ioctl ioctl是设备驱动程序中对设备的I/O通道进行管理的函数。所谓对I/O通道进行管理,就是对设备的一些特性进行控制,例如串口的传输波特率、马达的转速等等。它的调用个数如下: int ioctl(int fd, ind cmd, …); 其中fd是用户程序打开设备时使用open函数返回的文件标示符,cmd是用户程序对设备的控制命令,至于后面的省略号转载 2013-06-28 10:20:36 · 896 阅读 · 0 评论 -
stl的使用
STL中list的使用:STL中的list就是一双向链表,可高效地进行插入删除元素。现总结一下它的操作。文中所用到两个list对象c1,c2分别有元素c1(10,20,30) c2(40,50,60)。还有一个list::iterator citer用来指向c1或c2元素。list对象的声明构造():A. listc0; //空链表B转载 2013-06-05 22:58:10 · 526 阅读 · 0 评论 -
ubantu下vi文本后出现不正常的情况.
Ubuntu下编辑一些文件,这就涉及到了vi这个编辑器了。在Ubuntu下,初始使用vi的时候有点问题,就是在编辑模式下使用方向键的时候,并不会使光标移动,而是在命令行中出现[A [B [C [D之类的字母,而且编辑错误的话,就连平时关于的退格键(Backspace键)都使用不了,只能用Delete来删除。针对这个问题,网上的答案有很多,例如是安装完整版的vim啊,编辑/etc/vim/vimrc原创 2013-06-05 22:18:24 · 1174 阅读 · 0 评论 -
c/c++中的string
basic_string::append向string 的后面加字符或字符串。(比+=, push_back 更灵活)(1)向string 的后面加C-stringbasic_string& append( const value_type* _Ptr );string s ( "Hello " ); // s=”Hello ”const char *c = "Out Ther转载 2013-05-05 22:16:50 · 662 阅读 · 0 评论 -
htons(), htonl(), ntohs(), ntohl()的区别和含义
将多字节整数类型的数据,从主机的字节顺序转化为网络字节顺序原型:#include uint32_t htonl(uint32_t hostlong);uint16_t htons(uint16_t hostshort);uint32_t ntohl(uint32_t netlong);uint16_t ntohs(uint16_t netshort); 描述:不翻译 2013-05-19 22:07:31 · 795 阅读 · 0 评论 -
Linux下 fcntl 函数用法说明
Linux下 fcntl 函数用法说明功能描述:根据文件描述词来操作文件的特性。 文件控制函数 fcntl -- file controlLIBRARY Standard C Library (libc, -lc)SYNOPSIS #include ; int fcntl(int fd转载 2013-05-23 21:22:52 · 725 阅读 · 0 评论 -
Linux TCP server系列(4)-浅谈listen与大并发TCP连接
背景: 服务器在调用listen和accept后,就会阻塞在accept函数上,accpet函数返回后循环调用accept函数等待客户的TCP连接。如果这时候又大量的用户并发发起connect连接,那么在listen有队列上限(最大可接受TCP的连接数)的情况下,有多少个connect会成功了。试验证明,当连接数远远高于listen的可连接数上限时,客户端的大部分TCP请求会被抛弃,只有当转载 2013-06-05 22:47:05 · 1874 阅读 · 0 评论 -
一个网络资深者发起的思考
陈硕 (giantchen AT gmail)blog.youkuaiyun.com/Solstice前几天我在新浪微博上出了两道有关 TCP 的思考题,引发了一场讨论 http://weibo.com/1701018393/eCuxDrta0Nn 。第一道初级题目是:有一台机器,它有一个 IP,上面运行了一个 TCP 服务程序,程序只侦听一个端口,问:从理论上讲(只考虑 TC转载 2013-06-05 22:53:03 · 650 阅读 · 0 评论 -
c++中的string用法(一)
basic_string::append向string 的后面加字符或字符串。(比+=, push_back 更灵活)(1)向string 的后面加C-stringbasic_string& append( const value_type* _Ptr );string s ( "Hello " ); // s=”Hello ”const char *c = "Out Ther转载 2013-06-05 22:57:40 · 609 阅读 · 0 评论 -
c++中的string用法(二)
basic_string::compare如果所比较的两个string 相等,则返回0; 操作string 大于参数string,返回正数;操作string 小于参数string,返回负数。(1)比较操作string 与_Str 或C-string_Ptrint compare( const basic_string& _Str ) const;int compare( con转载 2013-06-05 22:58:59 · 690 阅读 · 0 评论 -
C++ string用法(三)
basic_string::max_size返回string 能放的最大元素个数。(不同于capacity)size_type max_size( ) const;basic_string ::size_type cap, max;cap = s.capacity ( );max = s.max_size ( ); // max=4294967294.basic_strin转载 2013-06-05 22:59:49 · 699 阅读 · 0 评论 -
STL的缺点
作者:姚冬链接:https://www.zhihu.com/question/20201972/answer/41324520来源:知乎著作权归作者所有,转载请联系作者获得授权。说几个STL的缺点吧,虽然都是在比较极端的情况下出现,但是对于一些大项目还是会遇到的1. 代码膨胀问题每一个实例化过的模板类,都会膨胀出一份独立的代码,比如std::vector, st转载 2017-10-12 10:49:22 · 955 阅读 · 0 评论