我有一个 vector<int>
长度为 n,只包含 0 和 1。例如,我们可以有以下长度为 10 的 vector :
0 1 1 0 1 0 0 1 0 0
现在我使用该 vector 表示的数字来访问具有 2^n 个条目的数组中的位置(因此在本例中为 2^10 = 1024 的数组)。我不确定如何从 vector<int>
中存储的字节表示中获取一个整数.
最佳答案
简单地遍历 vector 并收集 2 的幂。
这取决于您希望 vector 的哪一端作为最高有效数字,例如
auto to_int( const vector<int>& digits )
-> int
{
int result = 0;
for( int const digit : digits )
{
result += 2*result + digit;
}
return result;
}
或者反过来,
auto to_int( const vector<int>& digits )
-> int
{
int result = 0;
for( int i = (int)digits.size(); i --> 0; )
{
result += 2*result + digits[i];
}
return result;
}
免责声明:代码未经编译器审查。
关于c++ - 来自 vector C++ 中字节表示的 Int,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42188445/