set - 知道一个集合有多少个元素?

标签 set pascal freepascal standard-library

我正在使用 Pascal 进行编程,我试图查找标准库或类似库中是否有任何已创建的函数/过程,可以让我知道一个集合有多少个元素?

我知道如何通过使用 for 循环和计数器在找到元素时增加 +1 来做到这一点(类似于当您想要打印一组时必须完成的操作),但我想知道是否有任何元素其他更简单的方法,就像我说的,一些预定义的标准函数/过程?

最佳答案

如果您的集合是 1、2、4 或 8 字节,则可以使用最近引入的 popcnt 内在函数。

此内在函数在系统中,但仅在主干 (2.7.1) 中

function PopCnt(Const AValue: Byte): Byte;[internproc:fpc_in_popcnt_x];
function PopCnt(Const AValue: Word): Word;[internproc:fpc_in_popcnt_x];
function PopCnt(Const AValue : DWord): DWord;[internproc:fpc_in_popcnt_x];
function PopCnt(Const AValue : QWord): QWord;[internproc:fpc_in_popcnt_x];

原因可能更多地在于加速加密/压缩算法,而不是经典的算法集。

关于set - 知道一个集合有多少个元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12934017/

相关文章:

Python,mysql.connector 错误 : No Result Set to Fetch From; cgitb shows correct value being passed to function

gcc - 使用 FreeRTOS 和 OpenOCD 配置 GCC

class - 如何在类声明中使用预定义变量

python - 在 python 中,如果两个列表都包含公共(public)元素,则从两个元组列表中选取元组

haskell - 在 Haskell 中对集合进行分区

treeview - Inno Setup 中的 TTreeView

delphi - 对象在主程序中崩溃,但在移动到单元时不会崩溃

pascal - 为什么默认函数参数在 Free Pascal 中被拒绝?

pascal - 使用 Pascal 的 Windows 命令行

python - 一组独特的列表