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);
}
非常好用。
#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);
}
非常好用。
相关文章推荐
- [C++] STL Map的简单用法
- 通知简单用法
- GitHub 简单用法
- Jquery checkbox全选简单用法
- EXTJS4.0 gridpanel 用法笔记~~简单的创建grid
- Java-StringCharacterIterator简单的用法
- Yii2中关联查询简单用法示例
- Android WIFI 简单用法
- WebView的简单用法
- AngularJS内置服务器--$http服务的简单用法
- Subversion简单用法
- kindeditor用法简单介绍
- JavaScript 语法和简单用法
- #Android学习#Fragment简单切换及常用控件用法
- AngularJS中$http服务的简单用法
- 常见适配器的用法(在listview中 ,把三个edittext内容放在简单适配器中)
- dom4j 最常用最简单的用法
- Android TabLayout的简单用法
- STL map中key为结构体的用法
- Android开发基础之Button按钮的简单用法