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