
c++成长之路
文章平均质量分 68
wlssing3290
这个作者很懒,什么都没留下…
展开
-
引用、指针的指针、指针的引用
代码不具备可用性,只是用来测试#include using namespace std;class myclass{public: myclass(){}; ~myclass(){};};void fun1(myclass* ptr){ cout<<"调用fun1"<<endl; cout<<(myclass*)ptr<<endl; ptr = (myclass*)ma原创 2014-04-15 23:58:04 · 796 阅读 · 0 评论 -
线程之路六:读者写者的问题
//有一个写者很多读者,多个读者可以同时读文件,但写者在写文件时不允许有读者在读文件,同样有读者在读文件时写者也不去能写文件。#include #include #include CRITICAL_SECTION gcs,buffer;HANDLE readerover,writerover;int m=0;//读者数量BOOL SetConsoleColor(WORD wAtt原创 2014-03-29 21:23:17 · 742 阅读 · 0 评论 -
线程之路一:CreateThread()和-beginthreadex()
第一部分代码 线程传值线程返回pid#include #include //传值 返回进程idDWORD WINAPI ThreadFun(LPVOID pm){ std::cout<<*((int*)pm)<<"\nhello world!!!\n"<<GetCurrentThreadId()<<std::endl; return 0;}int main原创 2014-03-24 14:07:31 · 709 阅读 · 0 评论 -
线程之路二:线程原子操作和线程CriticalSection操作
一原子操作:即是那种运行了不把这条语句执行完就不会把计算机控制权交给另一个线程控制#include #include#include int num=0;unsigned int __stdcall ThreadFun(PVOID pm){ InterlockedIncrement((LPLONG)&num); //原子操作 //std::cout<<"第原创 2014-03-24 16:20:51 · 688 阅读 · 0 评论 -
写一些结构体的代码(stack,queue,现行表,二叉树,图模板 持续更新……)
栈结构:heap.h#ifndef HEAP_H#define HEAP_H#include templateclass Heap{private: static const int max =50; T heap[max]; int top;public: Heap(); ~Heap(){}; bool Isempty(); b原创 2014-03-25 12:52:57 · 980 阅读 · 0 评论 -
线程之路三:设置时间和互斥量mutex
上一节中,我们用CriticalSection方法得到了连续数,其实这主要是CriticalSection所包含的区域与前面的原子操作有类似的功能。但是前面原子的操作没有得到连续的是因为cout部分和原子操作不是连续的,在cout之前有可能有多次的原子操作 所以不是连续的,这个CriticalSection能把cout和++都包含成原子操作。下面我们看下CreateEvent的两个细小的差别原创 2014-03-25 15:00:26 · 866 阅读 · 0 评论 -
线程之路之四:进程同步线程互斥
信号量:#include #include#include HANDLE semaphore;CRITICAL_SECTION b;int num;unsigned int __stdcall ThreadFun(PVOID pm){ int m=*((int*)pm); ReleaseSemaphore(semaphore,1,NULL); Ent原创 2014-03-25 15:46:15 · 597 阅读 · 0 评论 -
线程之路五:消费者生产者
一个生产者,10个消费者,4个缓冲区//有一个生产者在生产产品,这些产品将提供给若干个消费者去消费,为了使生产者和消费者能并发执行,//在两者之间设置一个具有多个缓冲区的缓冲池,生产者将它生产的产品放入一个缓冲区中,消费者可以从缓冲区中取走产品进行消费,//显然生产者和消费者之间必须保持同步,//即不允许消费者到一个空的缓冲区中取产品,也不允许生产者向一个已经放入产品的缓冲区中再次原创 2014-03-26 20:52:52 · 770 阅读 · 0 评论 -
待修改,树的深度搜索和广度搜索
tree.h#ifndef RBTREE_H#define RBTREE_H#include #include #include #include #include using namespace std;templatestruct Node{ int item; Node* parent; Node* left; Node* right;};templat原创 2014-04-09 23:53:10 · 801 阅读 · 0 评论