C++ 中的字符串类的属性

Properties of a string class in C++

本文关键字:属性 字符串 C++      更新时间:2023-10-16

我正在研究Cohoon和Davidson C++程序设计。这是它对字符串类属性(第 3 版,第 123 页)的说法:

  • 组成字符串的字符
  • 字符串中的字符数

我的问题是:如果我们知道字符串中的字符,这是否意味着我们已经知道字符串中的字符数?明确指定第二个属性的必要性是什么?

你是对的,但长度在许多地方都是必需的,比如计数,或者知道 malloc 内存的长度/结束,所以最好将长度存储为附加属性,以使程序快速运行。

考虑一下如果程序需要一直计算字符只是为了告诉您其中有多少个字符,会发生什么。此外,当经常访问此功能时。

因此,它也只是节省了存储长度的时间。

因此,字符串类的所有实际实现都存储字符串的长度。

如果我们知道字符串中的字符

,这是否意味着我们已经知道字符串中的字符数?

在 C 语言中,我们知道元素的数量,因为我们可以数到 NULL 终端。但是想想获得字符串的长度有多昂贵?它需要走完整根弦。对于这样一个常见的操作,我们为什么不希望这是一个恒定时间的操作呢?