memset 赋值
来源:互联网 发布:魅族清除数据锁屏密码 编辑:程序博客网 时间:2024/06/06 12:50
这几天做图论的 最小生成树和最短路 什么的。
整了整memset,把我对memset的理解说下吧。
相信大家都会用string.h下的memset 赋值吧。
很简单,特别是对于搜索时候 vis数组的赋值,最小生成树和最短路的used数组也不错。
但是,都知道memset只能赋0和-1,
内部机构是通过按位来实现的。
而这次,来讲一下memset赋大值。
我们可以用memset赋 0xkfkfkfkf 的值(k=1,2,3..7) 后面8,9对于int型有些超范围啊
这样,我们可以给一些数组赋值,
在图论中先对 数组内容赋值,要赋一个很大的值,一般用for循环,
这里,我们就可以用memset 来赋值啦~
赋值0x7fffffff(对于int 型来说 0x7fffffff是最大的数)是不能过的,
因为在里面会有加法,两个这么大的数加起来会成为一个负数,从而影响到题目的答案。
所以,赋值要小于0x7fffffff的一半,而恰巧能通过memset来赋值的。
最大的也就是0x3f3f3f3f,所以可以看到有很多人代码中,
最大值一般用0x3f3f3f3f来表示。
其实,memset是按最后面的来填充。
只管后面的两个字符,然后前面的直接就复制过去。
所以 memset( a,0x3f,sizeof(a) ) 效果等同于 memset( a,0x3f3f3f3f,sizeof(a) )
同理对于,0xnf 等同于 0xnfnfnfnf (n=1,2,3....)
但有时候我们要对数组内容进行比较。
在memset的时候 电脑知道给数组赋值成0x3f3f3f3f 但 比较的时候 0x3f != 0x3f3f3f3f
所以,MAX 设置成0x3f3f3f3f。
当然,如果你不在头声明宏定义或者常量,memset也可以直接用0xnf
- memset 赋值
- memset赋值
- memset 赋值
- memset 赋值
- memset赋值问题
- memset函数赋值问题
- 关于memset赋值无穷大无穷小
- memset 按字节赋值注意事项
- 关于memset赋值的问题
- memset是对字节赋值
- 字符数组赋值,以及memset用法注意
- 使用 memset() 统一赋值 memcpry() 数组整体赋值
- memset函数不能给int(整型)数组初始化赋值
- 关于memset给整形数组赋值的问题
- Memset给非字符型数组进行赋值
- memset是如何赋值的以及一些遐想
- memset赋值0和-1,还能赋其他值吗?
- memset
- android 评论五角星 RatingBar
- Huffman 树
- 将状态栏的颜色设置成与界面tab的颜色一致
- Android环信修改头像和昵称
- Java_基础—试用版软件
- memset 赋值
- dot.js中条件判断
- Java并发——Synchronized及其实现原理
- volley使用中问题汇总
- 算法导论例题——钢管切割
- linux下vi的复制,黏贴,删除,撤销,跳转等命令
- PAT(Basic Level)_1038_统计同成绩学生
- MOOC清华《程序设计基础》第6章第2题:求f(a,b)问题(递归法)
- 1080. Graduate Admission (30)<28分>