Эквивалент C ++ Java System.arraycopy

Я пытаюсь перенести какой-то свой Java-код, который интенсивно использует метод System.arraycopy, и хочу знать, есть ли эквивалент в 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 ++ это может быть просто, но я буду делать это много, много раз и хочу убедиться, что делаю это как максимально эффективно.

7
задан Kara 7 August 2015 в 00:11
поделиться