
WD
kyowill
这个作者很懒,什么都没留下…
展开
-
c++学习笔记之友元
#include #include #include using namespace std;class Test{ public: friend class Other; //声明Other是Test的朋友 friend void bar(const Test &t); private: int x_;原创 2014-09-22 22:47:35 · 516 阅读 · 0 评论 -
小白学c++之多线程共享资源
#include #include #include #include void* fun(void* arg);int main(int argc,const char* argv[]){ pthread_t thd; int* p=new int(1); pthread_create(&thd,NULL,fun,NULL); int i=0; for(;i<10;原创 2014-11-19 16:03:52 · 1057 阅读 · 1 评论 -
小白学c++之fork()函数
#include #include #include #include int main(int argc, const char* argv[]){ printf("hello,pid%d\n",getpid()); fork(); printf("hello,pid%d\n",getpid()); return 0;}test@ubuntu:~/share/jinch原创 2014-11-16 10:40:11 · 10252 阅读 · 0 评论 -
原创伪c代码实现线程池
#include #include #include #include #include #include #include #include #include #include using namespace std;typedef function task;queue iq;pthread_mutex_t mutex;pthread_cond_t full;p原创 2014-10-24 11:17:44 · 790 阅读 · 0 评论 -
小白学c++之epoll封装
1.EpollPoller的关键是采用map实现从fd到TcpConnection的映射,每次操作fd,都需要去map中取出Tcp对象。2.采用Non-Blocking IO +IO Multiplex 这种EventLoop的编程模式成为Reactor网络编程模式。3.服务器编程:a) 迭代b) 多进程c) 多线程d) IO复用 + 阻塞IOe) Reactor模式原创 2014-10-22 21:23:05 · 944 阅读 · 0 评论 -
小白学c++之tcp链接中的函数
1、头文件:#include #include 定义函数:int accept(int s, struct sockaddr * addr, int * addrlen);函数说明:accept()用来接受参数s 的socket 连线. 参数s 的socket 必需先经bind()、listen()函数处理过, 当有连线进来时accept()会返回一个新的socket 处原创 2014-10-20 22:20:26 · 521 阅读 · 0 评论 -
小白学c++之epoll&&poll&&select模型
PS:对于监听描述符,内核为其维护两个队列,一个是 正在握手的链接,一个是三次握手完成的链接原创 2014-10-20 10:06:37 · 350 阅读 · 0 评论 -
小白学c++之TCP黏包与线程池
线程池扮演生产者,里面的线程扮演消费者,取任务做任务.explicit防止隐式转换四次挥手,关闭写段再关闭读段,read 为零talent localhostnetstat -an|grep 8976先关闭 服务器 在关闭客户端 产生端口服用的错误tcp流协议,没有报文的概念所谓粘包问题主要还是因为接收方不知道消息之间的界限,不知道一次性提取多少字节的数原创 2014-10-14 20:02:54 · 1210 阅读 · 0 评论 -
小白学c++之Thread、定时器、定时器线程
poll返回0,超时源文件里用namespace,含义是,namespace里的函数都是 static原创 2014-10-13 19:36:17 · 1211 阅读 · 0 评论 -
小白学c++之多线程互斥锁
#include #include #include #include pthread_mutex_t lock;int ticketcount=5;void* salewinds1(void* args){ while(1) { pthread_mutex_lock(&lock); if(ticketcount>0) { printf("window1 s原创 2014-11-20 09:15:34 · 384 阅读 · 0 评论 -
小白学c++之多线程同步与互斥的几个概念
互斥量:mutual exclusion(简写为mutex)原创 2014-11-20 21:57:50 · 683 阅读 · 0 评论 -
c++学习笔记之 数组类与负数类
//////////////////////////////////////////////////////////////#ifndef ARRAY_H#define ARRAY_H#include #include #include #include #include #include class array{ public: //friend std::ostre原创 2014-09-27 23:44:11 · 423 阅读 · 0 评论 -
c++学习笔记--异常处理
int main(int argc, const char *argv[]){ try { cout << "foo" << endl; throw std::runtime_error("exception ..."); cout << "bar" << endl; } catch(...) {原创 2014-09-17 16:20:25 · 635 阅读 · 0 评论 -
c++学习笔记之类的static成员
#include #include #include using namespace std;class Test{ public : int a; static int b; public: Test(int _a,int _b):a(_a) { b=_b; }原创 2014-09-20 15:18:49 · 432 阅读 · 0 评论 -
小白学c++之多线程函数返回值
#include #include #include #include //pthread_mutex_t lock;int ticketcount=5;void* salewinds1(void* args){ while(ticketcount>0) { printf("window1 start %d\n",ticketcount); sleep(1); t原创 2014-11-19 22:20:14 · 8011 阅读 · 0 评论 -
小白学c++之网络编程
listen()函数,里面的第二个参数原创 2014-11-06 15:14:35 · 418 阅读 · 0 评论 -
小白学c++之poll&&epoll&&IO复用
sockt描述符 负责读和写io-复用处理并发epoll_EVEENT是返回数组,系统填充ps -ef|grep server//查看父子进程close(listenfd)可以不写,一般服务器都要手动关闭,关掉进程后系统回收listenfd不可以在循环里关闭,否则无法再见监听链接原创 2014-10-16 23:58:32 · 457 阅读 · 0 评论 -
小白学c++之TCP readline的实现和函数封装
read取出内核数据,不能倒退原创 2014-10-15 19:33:18 · 1213 阅读 · 0 评论 -
小白学c++之单例模式和右值引用
引用语法上不占内存临时变量不是左值,不能取地址,c++0x新特性:右值引用移动用于构造和赋值-----------------------------------| lvalue const(x&) non-const(x&) || rvalue const(x&&) non-const(x&&)|原创 2014-10-09 23:58:17 · 446 阅读 · 0 评论 -
小白学c++之多态
while循环避免强盗锁时队列依然满足条件broadcast不是用来通知资源可用原创 2014-10-05 22:05:40 · 351 阅读 · 0 评论 -
小白学c++之几个常识
1.map容器的工作原理liyong原创 2014-10-12 14:11:12 · 451 阅读 · 0 评论 -
小白学c++之 robustIO
readn读不满会阻塞fcanf只能读ascII码,fread读字节原创 2014-10-12 09:05:49 · 820 阅读 · 0 评论 -
文本传输 xshell 的安装及配置
1.下载并安装 xshell(我用的是免费版的)2.转载 2014-09-24 14:39:51 · 590 阅读 · 0 评论 -
c++学习笔记之关联容器
1.pair不是容器,而是代表一个key-value键值对。2.map则是一个容器,里面存储了pair对象,只是存储的方式与vector这种连续存储,有所不同,map采用的是二叉排序树存储pair,一般是红黑树。3.map使用下标访问时,如果key不存在,那么会在map中添加一个新的pair,value为默认值。4.map的key必须具有小于操作符operato原创 2014-09-24 22:58:03 · 426 阅读 · 0 评论 -
c++学习笔记之vector容器与list容器
vector的几个跟容量有关的函数:size 元素数目,类似于会议室中人的数目resize 调整元素数目,类似于调整人数capacity 可容纳数目,类似会议室中的座位数量reserve 调整容量,增加或减少座位的数量vector的内存增长是按照成倍增长。vector与list区别:vector采用数组实现,list采用链表vector支持随机访问,list不提供下原创 2014-09-22 23:20:06 · 830 阅读 · 0 评论 -
c++学习笔记之迭代器
vector迭代器持续有效,除非:1.使用着在较小的索引位置插入或者删除元素。2.由于容量的变化引起的内存重新分配。list迭代器失效:将it指向的元素删除,那么it则失效用erase删除元素记得接收返回值,同时最好使用while循环。原创 2014-09-22 23:17:00 · 432 阅读 · 0 评论 -
c++学习笔记之static成员
使用static成员的注意事项:1static成员 类内声明,类外定义。static函数两种调用方式,(1)每个成员调用(2)类名调用 没用this指针 static不能调用成员函数内联函数不会带来函数开销原创 2014-09-22 22:58:30 · 479 阅读 · 0 评论 -
c++学习笔记之函数引用返回
#includeusing namespace std;#include#include#include#include#include #include #include string& test() { string s("hello"); return s; }int main(){ string ns; ns=test(); system("pau原创 2014-09-22 00:00:09 · 400 阅读 · 0 评论 -
c++学习笔记之c/c++两种语言初始化变量区别
#include int main(int argc, const char *argv[]){ int a; printf("%d",a); return 0;}这段代码是c代码,原创 2014-09-19 20:35:25 · 592 阅读 · 0 评论 -
c++学习笔记之 文件的读写操作
流可以分为三种,字节流,文本流,字符串流,原创 2014-09-18 23:49:50 · 451 阅读 · 0 评论 -
c++学习笔记之复制控制与stl算法
1、reverse迭代器在逻辑上,rbegin指向最后一个元素,rend指向第一个元素的前一个位置。但是在实际实现上,rbegin指向最后一个元素的下一个位置,rend指向第一个元素。reverse迭代器的物理位置与逻辑位置差1逻辑值比物理位置减少了1.采用这种实现的好处是:将iterator转化成reverse_iterator之后的区间,与之间的区间恰好相反,但内容相同。例原创 2014-09-25 18:50:10 · 361 阅读 · 0 评论 -
c++学习笔记之运算符重载与智能指针
ps::赋值操作会调用构造函数友元的位置 不在乎 public privates+=s2 s.operator+=(s2)原创 2014-09-26 23:31:58 · 492 阅读 · 0 评论 -
小白学c++之模板的使用
::表示根目录原创 2014-09-28 19:07:47 · 347 阅读 · 0 评论 -
小白学c++之MFC
把vc 6.0放到 vs2012下运行时 强大的报错li原创 2014-10-10 20:38:06 · 530 阅读 · 0 评论 -
小白学c++之effective c++条款12实现代码
class customer{public: customer(string s):name_(s){} customer(const customer & rhs):name_(rhs.name_) { cout<<"customer(const customer & rhs) run"<<endl; } customer& opera原创 2014-10-08 21:17:27 · 702 阅读 · 0 评论 -
小白学c++之计数指针
原创 2014-10-08 20:22:00 · 383 阅读 · 0 评论 -
小白学c++之同步互斥封装更新
vector容器存放的类型需要具备 赋值复制的能力,所以存放线程不行。原创 2014-10-07 22:54:19 · 311 阅读 · 0 评论 -
小白学c++之构造函数里的虚函数
#include #include #include using namespace std;class base{public: base() { logbase(); } virtual void logbase() { cout<<"from base"<<endl; }};class der原创 2014-10-07 20:56:57 · 357 阅读 · 0 评论 -
小白学c++之多线程同步互斥封装
锁不可复制如果需要的对象的引用或指针 头文件中只需声明这个类class mutex僵尸进程是残留的数据结构存在于内核中,是正常状态,在wait之前就是僵尸进程原创 2014-10-06 22:18:04 · 381 阅读 · 0 评论 -
小白学c++之继承、动态绑定
public继承后private 限于类的范围内protected 可以被继承子类访问a继承b,b继承c,虚函数的类都有虚指针,虚指针指向虚函数表,位于对象开头站4个字节派生类也有虚指针,指向本类的虚函数(用自己版本覆盖了原有版本)原创 2014-10-04 17:17:25 · 475 阅读 · 0 评论