2013-12-13 44 views
2

我有一個數據包的標題,其中包含有關發件人的各種信息;我想用C++解析它。 該陣列是在一個字節數組(unsigned char[24]如何複製和截斷/填充數組

在Java中,我可能會使用類似的東西Array.copyOfRange()搶到了前4個字節,在接下來的4個字節,等等,等等解析它的形式

但是在C++中,沒有一種明顯的方式來實現這一點。我從標準庫中查看了矢量,數組和複製,但是他們都沒有能夠按照我想要的方式對數組進行切片(並截斷或填充它)。

標準庫中是否有這樣的功能,還是需要推出我自己的解決方案?

+5

鑑於標準庫組件都這樣做,例如,'的std ::矢量'可以切片和切塊的順序,可能與合適的算法組合,我想你」你需要更具體地瞭解你想要什麼/需要什麼! –

+0

從你說的話來說,'memcpy'應該可以做到。 –

回答

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); 
    ... 
} 
+0

@RichardPlunkett很好的解決方案。 – Diversity