std :: strtol和std :: stoi有什么区别?

jms*_*ker 5 c++ c++11

免责声明:链接指向cppreference.com

所以我早就知道std :: atoi已被弃用,并且建议使用std :: strtol.

C++ 11引入了std :: stoi,我试图理解为什么会选择使用它std::strtol.

根据我的理解,stoi调用strtol但抛出异常.它还返回一个整数而不是long.

这些是主要的差异,我错过了什么?

Ree*_*sey 7

这些是主要的差异,我错过了什么?

较新的,std::stoi也可以直接使用std::string(因此您不必通过.c_str()调用来丢弃代码),并可选择通过a 而不是指针为您提供第一个不匹配的字符作为索引size_t.

这些更改简化了代码中的使用.