在 C++ 中将所有矢量元素读取为一个整数
Read all vector elements as one integer in C++
我有这个双端队列和这个向量:
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
。我该怎么做?
您可以执行以下操作:(有关如何 "merge" 矢量元素的示例代码)。
#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;
}
我有这个双端队列和这个向量:
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
。我该怎么做?
您可以执行以下操作:(有关如何 "merge" 矢量元素的示例代码)。
#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;
}