工作中使用到多进程通信,利用到了map以及multimap来进行实现。
需要做一个简单测试例子,直接上代码。
/* * main.cpp * Created on: Oct 28, 2013 * Author: Sam.Nie */ #include <stdio.h> #include <stdlib.h> #include <string> #include <map> #include <iostream> using namespace std; class AB { public: virtual void bar() = 0; virtual ~AB() {}; }; class A : public AB { void bar() { cout << "A "; } }; class B : public AB { void bar() { cout << "B "; } }; int main() { printf("Hello, Sam Test Here. "); //map map<int, AB*> mapAB; mapAB.insert(pair<int, AB*>(1, new A)); mapAB.insert(pair<int, AB*>(2, new B)); map<int, AB*>::iterator it; for(it = mapAB.begin(); it != mapAB.end(); it++) { AB *pAB = it->second; pAB->bar(); delete pAB; } //multimap multimap<int, AB*> multimapAB; multimapAB.insert(pair<int, AB*>(1, new A)); multimapAB.insert(pair<int, AB*>(1, new B)); multimap<int, AB*>::iterator multiit; for(multiit = multimapAB.begin(); multiit != multimapAB.end(); multiit++) { AB *pAB1 = multiit->second; pAB1->bar(); delete pAB1; } return 0; }