将字符向量转换为单个字符串
Convert a vector of characters to a single string
如果这个问题已经得到回答,请告诉我,所以我会删除它。
我有一个表示位字符串(或布隆过滤器(的字符向量:
std::vector<unsigned char> bit_table_;
问题:如何将向量转换为单个位字符串?
编辑:一般来说,布隆过滤器是一个位字符串:例如10010101011000。在这里,它表示为上述向量。我想将其转换为位字符串。
位字符串的最佳C++库是命名奇怪的bitset
(奇怪,因为它是有序的,而不是无序的(:
std::bitset<1024> bs;
for (int i = 0; i < bit_table_.size(); ++i) {
bs[i] = bit_table_[i];
}
bitset
的一个方便功能是,整个东西可以一次打印,作为人类可读的位字符串,MSB在左边,LSB在右边(例如,"00101101"表示数字45(:
std::cout << bs << std::endl;
请注意,bitset
需要在编译时知道位字符串的大小(或至少是上限(。 (我选择 1024 只是为了证明它可以比机器的字大小大得多。
但是,如果您的位向量确实适合unsigned long
或unsigned long long
,那么您可以快速取出打包的位:
unsigned long bits = bs.to_ulong();
unsigned long long bits = bs.to_ullong();
相关文章:
- 将字符向量转换为单个字符串
- 如何在 c++ 中将 2D 数组转换为单个字符串
- 将单个字符串/字符输入串行监视器
- 查找单个字符串中重复次数最多和次数第二多的字符
- 如何使用 deleteEntry 函数 c++ 删除数组中的单个字符串
- 如何从空格分隔的单个字符串中提取多个子字符串
- 如何比较C++中的单个字符串字符?
- 在 C++98 中写入单个字符串以"线程安全"吗
- 如何将字符串和整数组合成单个字符串 (C++)
- 如何将单个字符串与字符串数组进行比较
- 如何获取从GetPrivateProfileSection()返回的单个字符串
- 将任意数量的任意类型的值组合为单个字符串的简单命令
- 如何在 c++ 中将文件中的段落作为单个字符串读取
- 将字符串数组与用户输入的单个字符串进行比较,它还表明它在该位置找到 2 次
- 在hashmap中搜索,其中键可以是单个字符串或空格分隔的字符串
- 管理单个字符串的内存
- 从字符串中获取单个字符串字符
- 指针——单个字符串与字符串数组
- 在单个字符串中显示Unicode QString的QLatin1String连接
- 如何检查单个字符串输入的部分是int还是char