c++ - 来自 vector C++ 中字节表示的 Int

标签 c++ arrays indexing stdvector

我有一个 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/

相关文章:

PostgreSQL UUID 类型性能

c++ - recv() 套接字循环永远不会结束 C

arrays - swift:修改字典中的数组

C++;我如何在没有括号表示法的情况下返回数组中的给定元素?

c - 何时使用具有最大值的数组以及何时进行 malloc

c# - 列出哪些指数可以向两个方向扩展?

c++ - 访问 Mat 中出错的图像的像素

c++ - 动态和静态数组

C++ 数组输出问题

oracle - 索引组织表在这里合适吗?