"正确的C++解决方案" - 使用C++时c风格的逻辑是"坏"吗?

Hun*_*ves 1 c c++

所以最近我开始讨论如何解决问题,具体问题是:如何找到所有pallindromes在1到100万之间.我说,"使用atoi创建一个字符串,使用for循环来反转字符串,使用strcmp来比较有问题的字符串.

几分钟后,有人问"你为什么要在C++中使用C风格的解决方案." 我发现自己混淆了一种简单的,更"C++"的解决方法,直接易懂的代码.有人照顾我这个吗?

编辑:itoa not atoi

Pup*_*ppy 5

很简单,C++流保证内存安全且异常安全,失败与任何返回值不同,C++字符串是内存安全且异常安全的.C字符串atoi在人类已知的各种方式中都是非常不安全的.以这种方式编写的代码更容易出错.

  • @ user694971:同意您的主要分析.但声称C具有更好的性能是不正确的.使用C++字符串通常与C-Strings一样好或更好(C-Strings的问题是你永远不知道它的大小而不遍历它们,这是一整套性能问题).由于STL是模板(d),编译器通常会消除任何低效率,并且生成的代码将与C对应物一样有效(更安全). (2认同)