您的位置:首页 > 其它

stl map的简单用法

2008-11-27 17:13 169 查看
//---------------------------------------------------------------------------

#pragma hdrstop

#include <Graphics.hpp>

#include "Config.h"

//---------------------------------------------------------------------------

#pragma package(smart_init)

TMaxinConfig gConfig;

//---------------------------------------------------------------------------

//菜单项.5

//配置.2

#define CONFIG(idx, value) /

m_factory.insert(DATA_TYPE::value_type(DATA_TYPE::key_type(0, idx), value))

TMaxinConfig::TMaxinConfig()

{

CONFIG( CFG_MENU_ACTIVE, clRed );

CONFIG( CFG_MENU_DEACTIVE, clWhite );

CONFIG( CFG_XIAN_SHI_LEI_XING, 1 );

CONFIG( CFG_XIAN_SHI_YU_HUI, 1 );

CONFIG( CFG_XIAN_SHI_SHAN_GE_QIANG_DU, 100);

CONFIG( CFG_WHEEL_MENU_IDX, -1 );

CONFIG( CFG_MENU_BACK, clBackground );

CONFIG( CFG_LAST_LIST_MENU_IDX, -1 );

CONFIG( CFG_CUR_CH, 1 ); //通道1

}

//---------------------------------------------------------------------------

int& TMaxinConfig::data(int idx, int ch)

{

DATA_TYPE::key_type key;

key.first = ch;

key.second = idx;

DATA_TYPE::iterator p = m_data.find(key);

if(p == m_data.end()) //当前配置中未找到,将出厂设置Copy一份

{

p = m_factory.find(key);

if(p == m_factory.end()) //出厂设置中特定通道的数据未找到,取全局通道[0]

{

DATA_TYPE::key_type key_default;

key_default.first = 0;

key_default.second = idx;

p = m_factory.find(key_default);

}

if(p == m_factory.end()) //出厂设置中也没有该类型的数据,新建一个值为0的数据

{

DATA_TYPE::value_type v(key, 0);

m_data.insert(v);

}

else

{

m_data.insert(*p);

}

}

p = m_data.find(key);

return (*p).second;

}

//---------------------------------------------------------------------------

int& TMaxinConfig::tempData(int idx, int ch)

{

DATA_TYPE::key_type key;

key.first = ch;

key.second = idx;

DATA_TYPE::iterator p = m_tempData.find(key);

if(p == m_data.end()) //当前配置中未找到,新建一份

{

DATA_TYPE::value_type v(key, 0);

m_tempData.insert(v);

p = m_data.find(key);

}

return (*p).second;

}

//---------------------------------------------------------------------------

void TMaxinConfig::Serialize(const char *fileName)

{

}

//---------------------------------------------------------------------------

void TMaxinConfig::DeSerialize(const char *fileName)

{

}

//---------------------------------------------------------------------------

int& TMaxinConfig::operator[](int idx)

{

return data(idx, 0);

}

非常好用。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: