gpt4 book ai didi

c++ - 从 std::string 到 std::vector 的快速转换

转载 作者:行者123 更新时间:2023-12-01 14:29:15 24 4
gpt4 key购买 nike

<分区>

编辑:我将原来的问题留在下面,但转换并不像我声称的那么慢。我的原始程序中存在一个错误,导致调用该函数的输入比我预期的要长得多。实际上,从 string 转换而来有点vector只需要大约 1.5 倍的时间来转换其他方式。


我需要将字符串转换为 vector<bool> .但是,转换非常慢。我明白 vector<bool>是 vector 的特化。我尝试使用 vector<char>相反,但这同样慢。

这是我的代码:

std::vector<bool> frombytes(const std::string &bytes)
{
std::vector<bool> output;

for (unsigned int i = 0; i < bytes.length(); i++)
{
unsigned char byte = bytes[i];
for (unsigned int j = 0; j < 8; j++)
{
output.push_back(byte >> (7 - j) & 1);
}
}
}

我在想,也许通过一次写入 8 位,我可以让它更快。但是,我想不出这样做的方法。任何的意见都将会有帮助。谢谢!

更多信息:

  • 我试过vector::reserve ,但这并没有太大的区别。
  • 我正在使用带有“-O3”标志的 g++ 编译程序。

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com