C#定义一个数组,然后不停的赋值,如何判断这个数组的每一项都已经赋值,也就是说数组已经赋满值了,

给一个判断的标志,该数组的大小是已知的... 给一个判断的标志,该数组的大小是已知的 展开
 我来答
1024498758
2019-07-15 · 超过14用户采纳过TA的回答
知道答主
回答量:85
采纳率:88%
帮助的人:21.2万
展开全部
可以定义一个num来标记已赋值的数量,这个办法可能不太好。建议在需要知道是否已满时检查一遍,单次检查也就是n的复杂的。实际上判断数组是否全赋值没有太大的实用意义,所以我也不清楚是否有对应的方法。如果片要这么做的话我可能会用一个bitset去一对一的记录是否赋值,bitset具有不需要检查一遍就判断当中是否有1。即定义一个登长的bitset,赋值第4位则bitset第四位变为1(bitset初值为0),最后用bitset的内置方法判断是否还有0。暂时只能想到这样的处理办法。
更多追问追答
追问
我只需要对数组最后一项进行检查就好,我是依次赋值的,就看啥时候赋满,我好进行下一步操作。你说的bitset是怎么用
追答
依次赋值的话就不用那么麻烦,直接检查最后一个就行了。
bitset的话他是一种和数组差不多的类型,但是每一个里面非0即1,也就是说之占1位。同时内部方法采用位运算。优点是占用内存极小且运算即快,当需要对什么东西做标记时可以采用bitset。
举一个极端例子(可能不恰当但是助于理解),从10亿个int当中检查是否有重复的数。此时直接检查内存直接爆炸,不能一次性读入内存进行多次硬盘读写速度很慢。可以定义一个2的32次方长度的bitset,每长度只占1位,所以可以内存一次性维护。大概1G多(估了一下,不对请指正)。初始全为0,读到的5,则讲第5位置为1,若已为1,则有重复数。
当然bitset不止用于处理极端情况,速度快,内存小在算法上的用途也很广泛。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式