我正在尝试移植一些大量使用 System.arraycopy 方法的 Java 代码,并想知道 C++ 中是否有等效的方法。基本上我想要有 n 个字节数组并将它们组合成一个大数组。每个初始数组的长度都可以是可变的,所以我不想经历计算结束数组长度然后一次填充整个数组一个位置的麻烦,因为这感觉相当慢,我确信这一点操作得到了优化。但是,我找不到这个优化是什么(尽管我可能使这个优化变得比应有的更复杂)。
这里有一些伪(Java)代码来说明我想要做什么。
byte[] a = new byte[]{0x00, 0x01, 0x02};
byte[] b = new byte[][0x03, 0x04, 0x05];
byte[] ab = new byte[a.length+b.length];
System.arraycopy(ab, 0, a, 0, a.length);
System.arraycopy(ab, a.length+1, b, 0, b.length);
//Now, I would expect ab to look like {0x00, 0x01, 0x02, 0x03, 0x04, 0x05}
就像我说的,这在 C++ 中可能很简单,但我会做很多很多次,并希望确保我尽可能高效地做这件事。