java bitset and C++ bitset】的更多相关文章

java.util.BitSet,采用位运算: 官方API:http://docs.oracle.com/javase/7/docs/api/java/util/BitSet.html 摘要: BitSet的使用场景及简单示例,可用于在JAVA程序中实现unqiue功能. BitSet简介 类实现了一个按需增长的位向量.位 set 的每个组件都有一个boolean值.用非负的整数将BitSet的位编入索引.可以对每个编入索引的位进行测试.设置或者清除.通过逻辑与.逻辑或和逻辑异或操作,可以使用一…
前一段时间在网上看到这样一道面试题: 有个老的手机短信程序,由于当时的手机CPU,内存都很烂.所以这个短信程序只能记住256条短信,多了就删了. 每个短信有个唯一的ID,在0到255之间.当然用户可能自己删短信. 现在要求设计实现一个功能: 当收到了一个新短信啥,如果手机短信容量还没"用完"(用完即已经存储256条),请分配给它一个可用的ID. 由于手机很破,我要求你的程序尽量快,并少用内存. 1.审题 通读一遍题目,可以大概知道题目并不需要我们实现手机短信内容的存储,也就是不用管短信…
接着上一篇Blog:一道面试题与Java位操作 和 BitSet 库的使用,分析下Java源码中BitSet类的源码. 位图(Bitmap),即位(Bit)的集合,是一种常用的数据结构,可用于记录大量的0-1状态,在很多地方都会用到,比如Linux内核(如inode,磁盘块).Bloom Filter算法等,其优势是可以在一个非常高的空间利用率下保存大量0-1状态.在Java中,直接面向程序员的最小数据操作粒度是byte,并不提供能够直接操作某个bit的途径,但是程序员可以通过使用位运算符(&…
1,BitSet类    大小可动态改变, 取值为true或false的位集合.用于表示一组布尔标志.   此类实现了一个按需增长的位向量.位 set 的每个组件都有一个 boolean 值.用非负的整数将 BitSet 的位编入索引.可以对每个编入索引的位进行测试.设置或者清除.通过逻辑与.逻辑或和逻辑异或操作,可以使用一个 BitSet 修改另一个 BitSet 的内容. 默认情况下,set 中所有位的初始值都是 false. 每个位 set 都有一个当前大小,也就是该位 set 当前所用空…
先提一个问题,怎么在40亿个整数中找到那个唯一重复的数字? 第一想法就是Set的不可重复性,依次把每个数字放入HashSet中,当放不去进去的时候说明这就是重复的数字,输出这个数字. if(hs.contains(x)) System.out.println("重复的数字是"+x); else{ hs.add(x); } 但是, HashSet里contains(): public boolean contains(Object o) { return map.containsKey(…
Bitset创建一种特殊的数组来保存非负整数的值 取值为true和false,初始都是false.Bitset初始化是一个long,65位,增加位数的话只能是64的整数倍. 如果用一个Bitset存储一组数组[2,4,6,8],将会是这样的: 找出最大值8,给其加1=9 声明一个Bitset bs[9] bs[9]=[0,0,1,0,1,0,1,0,1]//数组从第0位到第8位分别代表的是0,1,2,3,4,5,6,7,8,所以bs数组里为1 的就代表有值,为0的就代表没有值 0是false,1…
Java Bitset类 BitSet使用示例: import java.util.BitSet; public class BitSetDemo { public static void main(String args[]) { BitSet bits1 = ); BitSet bits2 = ); // set some bits ; i < ; i++) { ) == ) { bits1.set(i); } ) != ) { bits2.set(i); } } System.out.pr…
package Contain; import java.util.BitSet; public class MyBitset { public static void main(String[] args) { BitSet bm = new BitSet(); System.out.println(bm.isEmpty() + "--" + bm.size()); int i = 0; for (i = 0; i < 100; i++){ bm.set(i); } Syste…
(1)BitSet类     大小可动态改变, 取值为true或false的位集合.用于表示一组布尔标志. 此类实现了一个按需增长的位向量.位 set 的每个组件都有一个 boolean 值.用非负的整数将 BitSet 的位编入索引.可以对每个编入索引的位进行测试.设置或者清除.通过逻辑与.逻辑或和逻辑异或操作,可以使用一个 BitSet 修改另一个 BitSet 的内容. 默认情况下,set 中所有位的初始值都是 false. 每个位 set 都有一个当前大小,也就是该位 set 当前所用空…
一.string    #include <string>  using std::string    初始化函数:    string s1;        默认构造函数 s1 为空串  string s2(s1);   将 s2 初始化为 s1 的一个副本  string s3("value");将 s3 初始化为一个字符串字面值副本  string s4(n, 'c');将 s4 初始化为字符 'c' 的 n 个副本    string s4(5,'6')  6666…