std :: stoi的基本参数

时间:2019-09-04 14:00:47

标签: c++ string c++11 atoi strtol

c ++的JPanel child = new JPanel(); child.setOpaque( false ); playerPanel.add( child ); 函数定义为:

stoi

如您所见,int stoi(const std::string& str, std::size_t* pos = 0, int base = 10); 参数默认为base,因此默认情况下它只能处理十进制数字。通过将10设置为base,它可以通过数字前缀来处理数字。这与0的行为相同,因此为什么将默认值设置为strtol而不是10

1 个答案:

答案 0 :(得分:15)

我写了添加这些功能的建议。各种stoX转换功能的目标是提供简单转换。到目前为止,Base 10是最常用的用法,应该是最简单的用法,因此是默认用法。以0为基数会引起许多初学者的疑问,为什么转换字符串"010"不会产生10。如果您在Stackoverflow上读了足够多的问题,就会看到这一点-许多初学者对文字常量的规则感到困惑,并期望int x = 010;x初始化为10。