如何复制和截断/填充数组

时间:2013-12-13 20:31:30

标签: c++ std

我有一个包中的标题,其中包含有关发件人的各种信息;我想用C ++解析它。 该数组以字节数组(unsigned char[24]

的形式出现

在Java中,我可能会使用类似Array.copyOfRange()的东西来解析前4个字节,接下来的4个字节等等。

但是在C ++中,没有一种明显的方法可以实现这一点。我查看了标准库中的向量,数组和副本,但它们似乎都没有能够按照我喜欢的方式对数组进行切片(并截断或填充它)。

标准库中是否存在可以执行此操作的内容,还是需要推出自己的解决方案?

1 个答案:

答案 0 :(得分:3)

大多数容器将采用指针范围,例如字符串(A + 0,A + 4)。用指针算术解决了这个问题:

unsigned char A[24];

vector<unsigned char> v0(A+0,A+4); // per chunk

for(int i=0; i<24; i+=4) { // or in a loop
    vector<unsigned char> chunk(A+i,A+i+4);
    ...
}