必须通过C ++实现将字符'0' - '9'设置为连续的数值,即:
'0' -> 0+n
'1' -> 1+n
m -> m+n
'9' -> 9+n
我无法在isdigit
([分类](22.3.3.1字符分类))*的文档中找到它,我也不能在语言环境文档中找到它。
在2.3字符集中,我们发现
基本源字符集由96个字符组成:空格字符,控制字符表示水平制表符,垂直制表符,换页符和换行符,以及以下91个图形字符
但它没有提到任何顺序。
*:那里有趣的脚注:
在循环中使用时,缓存ctype <> facet并直接使用它会更快(而不是isdigit()等,end comment],或者使用ctype <> :: is的向量形式。
发布于 2018-03-15 09:05:20
在源和执行基本字符集中,上述十进制数字列表中的 0之后的每个字符的值应该大于前一个的值。
这是上面的十进制数字列表:
0 1 2 3 4 5 6 7 8 9
因此,实现必须使用小数位具有连续表示的字符集。因此,你依赖此属性的优化是安全的; 然而,依赖于其他数字(例如'a'..'z')的模糊性的优化对于标准来说是不可移植的。如果你这样做,一定要声明该属性。
https://stackoverflow.com/questions/-100007622
复制相似问题