以下是一个更新Map里面的内容的例子:
// testmap.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include <iostream>
#include <map>
using namespace std;
typedef unsigned int CTuint;
typedef map<CTuint, CTuint> CTGroupQueue;
typedef map<CTuint, CTuint>::iterator IteratorGQ;
CTGroupQueue m_mapGQ;
void UpdateGroupCallQueue(CTuint groupId,CTuint callQueue)
{
CTuint nGroupId,nQueue;
if(m_mapGQ.size() == 0){
m_mapGQ.insert(CTGroupQueue::value_type(groupId,callQueue));
return;
}
IteratorGQ itGQ;
for(itGQ = m_mapGQ.begin();itGQ!=m_mapGQ.end();itGQ++)
{
nGroupId = (*itGQ).first;
nQueue = (*itGQ).second;
if (nGroupId!=groupId)
{
cout << "new "<<endl;
m_mapGQ.insert(CTGroupQueue::value_type(groupId,callQueue));
return ;
}
else
{
cout << "exist "<<endl;
m_mapGQ.erase(itGQ);
m_mapGQ.insert(CTGroupQueue::value_type(groupId,callQueue));
}
}
}
int _tmain(int argc, _TCHAR* argv[])
{
UpdateGroupCallQueue(10,1);
UpdateGroupCallQueue(10,2);
UpdateGroupCallQueue(20,2);
IteratorGQ itGQ;
int nLessAgent,nLessQueue;
for(itGQ = m_mapGQ.begin();itGQ!=m_mapGQ.end();itGQ++)
{
nLessAgent = (*itGQ).first;
nLessQueue = (*itGQ).second;
cout << "first "<<nLessAgent ;
cout << " second "<<nLessQueue << endl;
}
getchar();
return 0;
}
注意:
m_mapGQ.insert(CTGroupQueue::value_type(30,40));
m_mapGQ.insert(CTGroupQueue::value_type(30,50));
由于map是key和value的一一对应的,所以key只能有一个,以上接口的map只有一个值30,40