将所有矢量元素读取为C ++中的一个整数

问题描述 投票:0回答:1

我有这个双端队列和这个向量:

std::deque<uint8_t> Time(3);
std::vector<uint8_t> deque_buffer(3);

我做了一些push_backs

Time.push_back(1);
Time.push_back(2);
Time.push_back(3);

我将数据复制到vector

for(int i=0; i<3; i++)
{
    deque_buffer.at(i) = Time.at(i);
}

我想读取所有矢量数据并将其存储到int中。含义我想将0x010203解释为66051。我该怎么办?

c++ vector deque
1个回答
0
投票

这是您可以做的:(有关如何“合并”向量元素的示例代码。

#include <iostream>
#include <vector> 
using namespace std;

int main()
{


    vector<unsigned char> vec = {1,2,3};
    int res = 0;

    for (const auto &val:vec)
    {
        res = (res << 8 ) | val;
    }

    printf ("0x%x\n",res);
    printf ("%d\n",res);
    return 0;
}
© www.soinside.com 2019 - 2024. All rights reserved.