C++ 中的字符串类的属性
Properties of a string class in C++
我正在研究Cohoon和Davidson C++程序设计。这是它对字符串类属性(第 3 版,第 123 页)的说法:
- 组成字符串的字符
- 字符串中的字符数
我的问题是:如果我们知道字符串中的字符,这是否意味着我们已经知道字符串中的字符数?明确指定第二个属性的必要性是什么?
你是对的,但长度在许多地方都是必需的,比如计数,或者知道 malloc 内存的长度/结束,所以最好将长度存储为附加属性,以使程序快速运行。
考虑一下如果程序需要一直计算字符只是为了告诉您其中有多少个字符,会发生什么。此外,当经常访问此功能时。
因此,它也只是节省了存储长度的时间。
因此,字符串类的所有实际实现都存储字符串的长度。
如果我们知道字符串中的字符,这是否意味着我们已经知道字符串中的字符数?
在 C 语言中,我们知道元素的数量,因为我们可以数到 NULL 终端。但是想想获得字符串的长度有多昂贵?它需要走完整根弦。对于这样一个常见的操作,我们为什么不希望这是一个恒定时间的操作呢?
相关文章:
- C++ 命名参数习惯用语 - 未设置字符串属性
- c++ 构造函数 将 1 个字符串参数转换为 3 个属性
- 如何将字符串属性设置为 QTreeWidgetItem?
- 字符串的异常行为会追加属性 C++
- 将 Qt 属性枚举值打印为键字符串
- cocos2dx 将值强制转换为属性字符串
- 如何使用 boost 属性树来解析 boost 中 json 字符串中的数组中的元素?
- MFC SDI在更改属性时从INI读取并更新视图字符串
- 如何在 QML 文件中查找属性名称为字符串的 QML 上下文属性
- 在C++中使用字符指针将字符串保存到类属性
- 如何将标准::字符串格式的 JSON 解码为 Boost 属性树
- HDF5存储不同大小的字符串属性
- 如何通过字符串名称访问结构属性
- C++11 字符串属性和 gcc 版本
- QML 引擎不隐式将布尔字符串 QVarient 转换为布尔属性
- 提升精神继承的字符串属性填充<int> ASCII 字符中的向量
- 将属性树提升为字符串
- C++字符串上的静态属性初始化错误
- 提升因果报应-从一个属性生成多个字符串
- Boost Library函数将JSON格式的属性树转换为点分隔的字符串