查找循环队列中的元素数
Finding the number of elements in a circular queue
假设我有一个使用大小为10的数组实现的循环队列。如果不使用C++中的sizeof
函数,如何查找数组中的元素数,或者换句话说,已使用的索引数。我想使用模块化数学,因为我知道第一个和最后一个索引,但如何将其纠正为返回此大小的函数?
除了使用sizeof
之外,您找不到C样式数组的大小;这就是运营商存在的原因之一。模量肯定帮不了你。
现在,对于C++的std::array
模板类,您可以简单地使用size()
方法。
编辑:如果你现在已经是最后一个"可能"的索引(第一个是总是0),你可以使用加一作为长度。
您似乎知道数组的大小,但您想知道数组中有多少索引是用非NULL或默认值的实际值填充的。如果是这种情况,在最坏的情况下,您将不得不迭代数组并检查每个索引。
你可以通过自己做一些记账和跟踪填充的指数,让你的生活变得更轻松。每次向数组添加值时,都要递增计数。删除时递减计数。如果更新了已填充的索引,请不要理会计数。
相关文章:
- 擦除while循环中迭代的元素
- C++:如何循环通过向量中的整数元素
- 对于set上的循环-获取next元素迭代器
- 基于范围的 for 循环:迭代使用一个元素扩展的向量
- 如何从使用 for 循环中的矢量大小的矢量中删除元素
- C++基于范围的 for 循环和元素副本
- 这个返回元素位置的基于循环的函数有什么问题?
- 为什么我在尝试在单向链表中打印元素时会出现这个永无止境的循环
- 循环访问还包含未使用元素的字符串数组
- C++用于循环跳过向量的元素?
- 基于相邻元素 c++ 的分段误差范围的循环
- 循环中的变量被设置为下一个数组的元素始终具有相同的内存地址?
- 使用现代C++在 Eigen3 矩阵上使用 for 循环进行元素操作的优雅方式
- 需要帮助编写一个小程序来将循环乘以 n 个元素和 k 个多重性
- C++ 数据结构队列:使用 for 循环查找队列中最大的元素
- 将函数应用于特征矩阵中的所有元素,而无需循环
- 使用 C++ 从每个循环的数组中选择 n 个元素
- 忽略元素的基于范围的 for 循环
- 优先级队列(使用 pairs<int,int> ) 根据 for 循环迭代器的顶级元素
- 用于随机访问和元素循环的最佳数据结构(C++)