我有一个包中的标题,其中包含有关发件人的各种信息;我想用C ++解析它。
该数组以字节数组(unsigned char[24]
)
在Java中,我可能会使用类似Array.copyOfRange()
的东西来解析前4个字节,接下来的4个字节等等。
但是在C ++中,没有一种明显的方法可以实现这一点。我查看了标准库中的向量,数组和副本,但它们似乎都没有能够按照我喜欢的方式对数组进行切片(并截断或填充它)。
标准库中是否存在可以执行此操作的内容,还是需要推出自己的解决方案?
答案 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);
...
}