【发布时间】:2018-03-06 11:51:39
【问题描述】:
如果向量不是 8 字节的倍数,如何用 0 填充? 在下面的代码中,我计算出偏移量并添加到向量中以确保它始终具有 8 个值。我想用 0 填充它,我想知道最有效的方法是什么。
例如:
输入:4444
带内边距:4444000000000000
我目前的代码是:
if ((vector1.size() % 8) != 0)
{
for (std::vector<unsigned char>::iterator itr = vector1.begin(); itr != vector1.end(); itr ++)
{
vector1.push_back(fmod(vector1.size(), 8));
if(vector1.size() == 8)
break;
}
}
【问题讨论】:
-
要添加的 0 的数量是
(8 - (vector1.size() % 8)) % 8如果没有最后一个% 8,长度已经为 8 的向量将再添加 8 个 0。
标签: c++ c++11 vector padding fmod