C++核心准则?SL.io.1:只在必须时使用字符级别的输入


C++核心准则?SL.io.1:只在必须时使用字符级别的输入文章插图
SL.io.1: Use character-level input only when you have toSL.io.1:只在必须的时候使用字符级别的输入Reason(原因)
Unless you genuinely just deal with individual characters, using character-level input leads to the user code performing potentially error-prone and potentially inefficient composition of tokens out of characters.
除非你就是需要处理单独的字符 , 除非您真的只处理单个字符 , 否则使用字符级别输入有可能导致用户代码执行容易出错 , 并导致字符中标记的处理效率低下 。
Example(示例)
char c;char buf[128];int i = 0;while (cin.get(c) if (i == 128) {// ... handle too long string ....}Better (much simpler and probably faster):
【C++核心准则?SL.io.1:只在必须时使用字符级别的输入】好一些(更简单而且可能更高效)
string s;s.reserve(128);cin >> s;and the reserve(128) is probably not worthwhile.
同时 , reserve(120)可能并不值得 。
Enforcement(实施建议)
???
原文链接
#slio1-use-character-level-input-only-when-you-have-to
新书介绍
《实战Python设计模式》是作者最近出版的新书 , 拜托多多关注!
C++核心准则?SL.io.1:只在必须时使用字符级别的输入文章插图
本书利用Python 的标准GUI 工具包tkinter , 通过可执行的示例对23 个设计模式逐个进行说明 。 这样一方面可以使读者了解真实的软件开发工作中每个设计模式的运用场景和想要解决的问题;另一方面通过对这些问题的解决过程进行说明 , 让读者明白在编写代码时如何判断使用设计模式的利弊 , 并合理运用设计模式 。
对设计模式感兴趣而且希望随学随用的读者通过本书可以快速跨越从理解到运用的门槛;希望学习Python GUI 编程的读者可以将本书中的示例作为设计和开发的参考;使用Python 语言进行图像分析、数据处理工作的读者可以直接以本书中的示例为基础 , 迅速构建自己的系统架构 。
觉得本文有帮助?请分享给更多人 。
关注微信公众号【面向对象思考】轻松学习每一天!
面向对象开发 , 面向对象思考!