⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 list5-8.cpp

📁 这是c++编程方面的名著的例子代码
💻 CPP
字号:
// Listing 5-8
// This program uses global STL containers
// as interthread communication mechanisms

#define INCL_DOSPROCESS
#include <os2.h>
#include <iostream.h>
#include <process.h>
#include <stddef.h>
#include <rational.h>
#include <set.h>
#include <algo.h>


rational M(3,4);
typedef set<rational,rational> rational_set;
typedef set<rational,rational>::iterator rational_iterator;
rational_set SetA,SetB,SetC;
rational_iterator A,B,C;

void threadA(void *X)
{
    rational Z(5,4);
    rational W(1,8);
    SetA.insert(W);
    SetA.insert(Z);
    set_intersection(SetA.begin(),SetA.end(),SetB.begin(),SetB.end(),
		     inserter(SetC,SetC.begin()),Z);
    SetB.insert(W);
    SetA.erase(SetA.begin(),SetA.end());
}

void threadB(void *X)
{

   rational Q(2,3);
   rational R(5,5);
   SetB.insert(Q);
   SetB.insert(R);
   SetA.insert(Q);
   SetA.insert(M);
   set_union(SetC.begin(),SetC.end(),SetB.begin(),SetB.end(),
	     inserter(SetA,SetA.begin()),Q);
}


void main(void)
{
    unsigned long ThreadA;
    unsigned long ThreadB;
    ThreadA = _beginthread(threadA,4096,NULL);
    ThreadB = _beginthread(threadB,4096,NULL);
    DosWaitThread(&ThreadA,DCWW_WAIT);
    DosWaitThread(&ThreadB,DCWW_WAIT);
    A = SetA.begin();
    B = SetB.begin();
    C = SetC.begin();
    cout << "Set A contains ";
    while(A != SetA.end())
    {
      cout << *A << " ";
      A++;
    }
    cout << endl << "Set B contains ";
    while(B != SetB.end())
    {
      cout << *B << " ";
      B++;
    }
    cout << endl << "Set C contains ";
    while(C != SetC.end())
    {
      cout << *C << " ";
      C++;
    }
    cout << endl;
}











⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -