我正在使用 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/