C风格字符串和C++ string 对象赋值操作的性能比较
<<C++ Primer>> 第四版 Exercise Section 4.3.1 部分Exercise 4.2.9 习题如下:
在自己本机执行如下程序,记录程序执行时间:
1 #include "stdafx.h" 2 #include <iostream> 3 #include <string> 4 #include <vector> 5 #include <ctime> 6 7 using namespace std; 8 9 int main() 10 { 11 clock_t start, end; 12 start = clock(); 13 const char *pc = "a very long literal string"; 14 const size_t len = strlen(pc); 15 cout << "the length of pc is: " << len << endl; 16 for (size_t ix = 0; ix != 10000; ++ix) 17 { 18 char *pc2 = new char[len+1]; 19 strcpy_s(pc2,len+1,pc); 20 if (strcmp(pc, pc2)) 21 { 22 // do nothing 23 } 24 delete[] pc2; 25 } 26 27 end = clock(); 28 cout << "for c style operation : " << (end - start) << endl; 29 30 clock_t start1, end1; 31 start1 = clock(); 32 string str("a very long literal string"); 33 for (int ix = 0; ix != 10000; ++ix) 34 { 35 string str2 = str; 36 if (str != str2) 37 { 38 39 } 40 } 41 end1 = clock(); 42 cout << "for c++ string operation : " << (end1 - start1) << endl; 43 return 0; 44 }
其中时间记录的代码是我自己加的,用于分别记录C风格字符串和C++ string对象赋值操作的执行时间。执行结果如下:
c++ string 对象的赋值操作耗时明显比c风格字符串要长很多,但是从书上的结论来说,c++ string的操作要远比c风格字符串长。所以这里记录下,以后研究标准库时,分析代码来找原因。
转载于:https://www.cnblogs.com/lucy-lizhi/p/6476710.html
C风格字符串和C++ string 对象赋值操作的性能比较相关推荐
- 安卓给string对象赋值_String 面试题!看完让你恍然大悟!
点击上方"JAVA",星标公众号重磅干货,第一时间送达这篇来看看关于Java String类的5道面试题,这五道题,我自己在面试过程中亲身经历过几道题目,学完了这篇,我才焕然大悟, ...
- C++string容器-赋值操作
功能描述: 给string字符串进行赋值 代码如下: #include <iostream> using namespace std; #include <cstring>vo ...
- string对象和C风格字符串
混用string对象和C风格字符串 我们都知道允许使用字符串字面值来初始化string对象: string s("Hello World!"); C++规定,任何出现字符串字面值的 ...
- 混用string对象与C风格字符串
任何出现字符串字面值的地方都可以用以空字符结束的字符数组来替代: 允许使用以空字符结束的字符数组来初始化string对象或为string对象赋值. 在string对象的加法运算中允许使用以空字符结束的 ...
- 【STL】string详解(string类常用的操作函数、构造函数、赋值操作、子符串的拼接、查找和替换、比较、存取、插入和删除、获取)
目录 1. string容器 简介 2. string类常用的操作函数 3. 构造函数 4. 赋值操作 5. 字符串拼接 6. 字符串查找和替换 7. 字符串比较 8. 字符串存取 9. 字符串插入和 ...
- java 获取对象方法有哪些方法有哪些方法有哪些_Java中创建String 对象的方法有哪些...
Java中创建String 对象的方法有哪些 发布时间:2020-11-25 16:45:30 来源:亿速云 阅读:71 作者:Leah 这篇文章将为大家详细讲解有关Java中创建String 对象的 ...
- 偷窥JAVA字符串三姐妹-String、StringBuffer、StringBuilder
本文转自我的blog:产品经理新视线 builder最佳 单线程就用StringBuilder吧~~ 她技巧最好~最忠诚~让你一个人爽翻天~~~ 多线程就用StringBuffer吧~~ 她就是一Bu ...
- Java中ListE对象赋值问题(引用传递和值传递)
Java中List<E>对象赋值操作问题 业务需求是:取2个集合中的交集对象并返回.如下代码,busMap中key值和stocks中Map中的key值相等的对象则返回继续操作,也就是说剔除 ...
- string修饰的梦修改吗_Java String 对象,你真的了解了吗?
String 对象的实现 String对象是 Java 中使用最频繁的对象之一,所以 Java 公司也在不断的对String对象的实现进行优化,以便提升String对象的性能,看下面这张图,一起了解一 ...
最新文章
- 何恺明、陈鑫磊新研究:提出实例分割新方法,效果比肩Mask R-CNN
- 网络游戏server编程,第一章笔记
- php ajax取不到值,PHP没有从Ajax获取值
- ssh重装ubuntu_Ubuntu环境下SSH的安装及使用详解
- 能用计算机解决的问题十个,计算机常见问题及解决方法,计算机十项常见故障...
- SQL Server Log Shipping学习总结
- 质疑北京大北农科技集团股份有限公司(”大北农“)停牌公告
- PollingBlockTracker - encountered an error while attempting to update latest block:
- RabbitMQ实例教程:用Java搞定工作队列
- Android:简易计算器
- kido机器人没反应_QQ机器人常见故障排除方法
- java随笔 2008年
- android缩放组件,Android可放大缩小的图片浏览缩放控件
- 如何提升Excel水平?5个Excel常用技巧,学会不加班
- PDF页面删除怎么操作
- 半条命2服务器无响应,半条命2游戏常见问题解决方法
- 20款免费项目管理系统推荐
- xmanager登陆linux黑屏,使用xmanager工具登陆linux服务器时黑屏问题
- 如何批量给文件重命名?
- 【人工智能数学基础(三)】数学优化
热门文章
- mysql group by取条数最多_mysql获取group by总记录行数的方法
- .exp文件_mini_httpd 任意文件读取漏洞(附EXP脚本)
- 加减法叫做什么运算_期中备考:数学运算定律、法则与顺序
- 网络推广方案分享网站想要更快的优化到首页的技巧!
- H标签对网站SEO优化是不可或缺的!
- windows server 查看 删除事件_蓝队护网 之Windows服务器加固
- 元气骑士超级科学计算机有什么用,元气骑士:超级科学计算器不只是白武,全面解析它的4种形态!...
- vb编程入门_【高能】用VB开发的彩票选号软件
- 联机事务处理OLTP(on-line transaction processing)和联机分析处理OLAP(On-Line Analytical Processing)...
- “懒”的妙用——浅析图片懒加载技术