c++ 获取数字字符串的子串数值性能示例分析

 更新时间:2023年11月02日 11:49:44   作者:点墨  
这篇文章主要为大家介绍了c++ 获取数字字符串的子串数值示例分析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

题引

c++ 获取数字字符串的子串数值,比如给定字符串"123456",要获取第三位和第四位的数值,这里是34。

方法

1.使用substr

使用substr截取字串,再使用c_str()获取字符数组,再使用atoi()转换为数字

2.构造字符数组

直接使用索引获取字符,构建字符数组,再使用atoi()转换为数字

代码

#include <string>
#include <iostream>
#include <chrono>
using namespace std;
int main(int argc, char* argv[]) {
    string val = "123";
    int total = 1000000;
    std::chrono::time_point<std::chrono::system_clock> start = std::chrono::system_clock::now();
    for (int i = 0; i < total; i++) {
        int tmp = atoi(val.substr(1, 2).c_str());
    }
    std::chrono::time_point<std::chrono::system_clock> end = std::chrono::system_clock::now();
    std::chrono::microseconds diff = std::chrono::duration_cast<std::chrono::microseconds>(end - start);
    cout << "using substr:" << diff.count() << "ms" << endl;
    start = std::chrono::system_clock::now();
    for (int i = 0; i < total; i++) {
        char vals[2] = { val[1],val[2] };
        int tmp = atoi(vals);
    }
    end = std::chrono::system_clock::now();
    diff = std::chrono::duration_cast<std::chrono::microseconds>(end - start);
    cout << "using char[]:" << diff.count() << "ms" << endl;
    return 0;
}

执行结果

结论

使用字符直接构造,性能是substr的十倍左右

以上就是c++ 获取数字字符串的子串数值性能示例分析的详细内容,更多关于c++ 数字字符串子串获取的资料请关注脚本之家其它相关文章!

相关文章

  • C++ 微信多开的实现

    C++ 微信多开的实现

    本文主要介绍了C++ 微信多开的实现,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-02-02
  • C语言实现飞机大战小游戏

    C语言实现飞机大战小游戏

    这篇文章主要为大家详细介绍了C语言实现飞机大战小游戏,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-06-06
  • C语言实现简单计算器功能(1)

    C语言实现简单计算器功能(1)

    这篇文章主要为大家详细介绍了C语言实现简单计算器功能的第一部分,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-02-02
  • Matlab实现鼠标光标变成爱心和瞄准镜形状

    Matlab实现鼠标光标变成爱心和瞄准镜形状

    这篇文章主要为大家详细介绍了如何利用Matlab实现将鼠标光标变成爱心和瞄准镜等形状,文中的示例代码讲解详细,感兴趣的可以了解一下
    2022-08-08
  • C语言链表实现学生成绩管理系统

    C语言链表实现学生成绩管理系统

    这篇文章主要为大家详细介绍了C语言链表实现学生成绩管理系统,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-07-07
  • Sublime Text 3 实现C语言代码的编译和运行(示例讲解)

    Sublime Text 3 实现C语言代码的编译和运行(示例讲解)

    下面小编就为大家带来一篇Sublime Text 3 实现C语言代码的编译和运行(示例讲解)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-09-09
  • C语言安全编码数组记法的一致性

    C语言安全编码数组记法的一致性

    这篇文章主要介绍了C语言安全编码数组记法的一致性,需要的朋友可以参考下
    2014-07-07
  • 浅析C++中单链表的增、删、改、减

    浅析C++中单链表的增、删、改、减

    以下是对C++中单链表的增、删、改、减进行了详细的介绍,需要的朋友可以过来参考下
    2013-09-09
  • Linux下C语言实现工厂模式方式

    Linux下C语言实现工厂模式方式

    这篇文章主要介绍了Linux下C语言实现工厂模式方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2025-06-06
  • 深入了解C++智能指针的使用

    深入了解C++智能指针的使用

    智能指针的本质就是使用一个对象来接管一段开辟的空间,在该对象在销毁的时候,自动调用析构函数来释放这段内存。本文就来和大家详细聊聊智能指针的使用,需要的可以参考一下
    2022-10-10

最新评论