【发布时间】:2013-12-03 09:50:38
【问题描述】:
我想为 wstrings 创建一个自定义的小写/大写函数。
因此,我使用的是整数映射。
目前我正在从这些地图中自动创建一个函数:
(...)
else if (iCharCode==65)
{
iRet=97;
}
else if (iCharCode==66)
{
iRet=98;
}
else if (iCharCode==67)
{
iRet=99;
}
else if (iCharCode==68)
{
iRet=100;
}
else if (iCharCode==69)
{
iRet=101;
}
else if (iCharCode==70)
{
iRet=102;
}
else if (iCharCode==42818)
{
iRet=42819;
}
(...)
但是,如果我将我的地图变成这样的 if 语句,函数将会非常大。
因此,我希望使用真实地图,但我不想在运行时加载它。 我更喜欢静态地图,但我不知道该怎么做。
有人可以分享他的想法吗?
【问题讨论】:
-
这只是巧合。大多数时候不是+32。
-
@Dweeberly 不适用于非 ASCII 字符,因此我正在做自己的功能。
-
@Jimmy 你能删除你的评论吗?你得到了这么多的赞成票,以至于它具有误导性。
-
A
std::map<int,int>会占用太多内存。一种方法是为简单值创建一个数组,例如,为前 256 个值创建一个包含 256 个int大小写映射值的数组,为其余的值创建一个函数。一般来说,一个函数可以比这里的代码紧凑得多;例如,if(65 <= iCharCode && iCharCode < 71) iRet = iCharCode + 32; else ...。
标签: c++ arrays visual-studio-2010 map static