查找循环队列中的元素数

Finding the number of elements in a circular queue

本文关键字:元素 循环 队列 查找      更新时间:2023-10-16

假设我有一个使用大小为10的数组实现的循环队列。如果不使用C++中的sizeof函数,如何查找数组中的元素数,或者换句话说,已使用的索引数。我想使用模块化数学,因为我知道第一个和最后一个索引,但如何将其纠正为返回此大小的函数?

除了使用sizeof之外,您找不到C样式数组的大小;这就是运营商存在的原因之一。模量肯定帮不了你。

现在,对于C++的std::array模板类,您可以简单地使用size()方法。

编辑:如果你现在已经是最后一个"可能"的索引(第一个是总是0),你可以使用加一作为长度。

您似乎知道数组的大小,但您想知道数组中有多少索引是用非NULL或默认值的实际值填充的。如果是这种情况,在最坏的情况下,您将不得不迭代数组并检查每个索引。

你可以通过自己做一些记账和跟踪填充的指数,让你的生活变得更轻松。每次向数组添加值时,都要递增计数。删除时递减计数。如果更新了已填充的索引,请不要理会计数。