如何使用位表示访问可索引的数据结构
how to use bit representation to access indexable data structure
给定一个可索引的数据结构,例如n = 3和int i = 3的vector = ['a','b','c'],我想转换3到其n位二进制表示(011)中,然后返回向量的元素['b','c']。也就是说,对于二进制表示中的每个1,在该位置返回元素。但是,我该如何谈论二进制数字中的"位置"呢?我很难将一个想法映射到另一个想法。任何帮助。
使用位移动测试i
的每一点:
for(x=0; x<sizeof(int) * 8; x++)
{
if((i & (1<<x)) > 0)
{
// bit at position x is set in i
add vector[i];
}
}
这将导致
011 & 001 = 001 // true
011 & 010 = 010 // true
011 & 100 = 000 // false
.. etc
相关文章:
- 链表,反向函数,数据结构
- 如何使用set实现无序数据结构?
- 我们可以将数据永久保存为数据结构吗?
- C++中的可变长度数组/数据结构
- 用于存储由空格分隔的字符串的 C++/C 数据结构
- 通过 NIF 从C++返回自定义数据结构
- 编译器上的策略数据结构不起作用
- 保持排序的数据结构,允许log N插入时间,并且可以返回我在log N中查找的元素的索引
- C++ STL 数据结构常时按索引推送/弹出/随机访问,并具有指向元素的可靠指针
- 用于存储网格(将具有负索引)的数据结构
- 查找索引数据结构,例如`sTD :: vector`(非数组)
- 从右到左计算当前索引中的数据结构中的元素数,并打印每个元素的计数
- 如何创建辅助数据结构来跟踪 c++ 中 decrease_key 操作的堆索引
- 如何使用位表示访问可索引的数据结构
- 用于处理索引不断变化的数组的数据结构
- 用于超大时间序列的最佳索引数据结构
- C++数据结构来执行索引列表
- 对数据结构进行排序并保存原始索引的记录
- 用于存储大量索引的数据结构,每个索引指向一个集合
- 用于按排序顺序存储元素并允许快速索引的数据结构