【发布时间】:2018-07-07 06:35:24
【问题描述】:
#include <iostream>
#include <vector>
int main()
{
std::vector<bool> bitvec{true, false, true, false, true};
std::string str;
for(size_t i = 0; i < bitvec.size(); ++i)
{
// str += bitvec[i];
std::vector<bool>::reference ref = bitvec[i];
// str += ref;
std::cout << "bitvec[" << i << "] : " << bitvec[i] << '\n';
std::cout << "str[" << i << "] : " << str[i] << '\n';
}
std::cout << "str : " << str << '\n';
}
我们如何从 bool 值的 std::vector 构造一个整数值。我想将它转换为 std::string,然后从 bool 值的 std::vector 转换为整数,但是将它从 bool 值的 std::vector 转换为字符串失败。我知道 bool 和 std::string 元素的 std::vector 不是同一类型。所以同样需要帮助。
【问题讨论】:
-
std::vector<bool>不是一个好主意,而是使用std::bitset。 -
你能举一个输入向量和预期输出的int值的例子吗?
-
您在寻找什么样的转换?您想将布尔值解释为位吗?如果是,那么哪个位置代表最高有效位,第一个还是最后一个。
-
我希望将各个位表示为二进制数字,然后将其转换为整数(十进制)值。
-
哪个位置代表最高有效位?