【问题标题】:Read all vector elements as one integer in C++在 C++ 中将所有向量元素读取为一个整数
【发布时间】:2020-09-26 10:41:36
【问题描述】:

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

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】:

    您可以执行以下操作:(有关如何“合并”矢量元素的示例代码)。

    #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;
    }
    

    【讨论】:

      猜你喜欢
      • 2014-05-22
      • 2020-12-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多