Estoy tratando de portar un código Java mío que hace un uso intensivo del método System.arraycopy y quiero saber si hay un equivalente en C++. Básicamente quiero tener matrices de n bytes y combinarlas en una gran matriz. Cada una de las matrices iniciales puede ser de longitud variable, por lo que no quiero pasar por el arcén de calcular la longitud de las matrices finales y luego llenar toda la matriz una posición a la vez, ya que esto parece bastante lento y estoy seguro de que esto la operación ha sido optimizada. Sin embargo, no puedo encontrar cuál es esta optimización (aunque puedo estar haciendo esto más complicado de lo que debería ser).C++ equivalente a System.arraycopy de Java
Aquí hay un código pseudo (Java) para ilustrar lo que quiero hacer.
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}
Como dije, esto puede ser simple en C++, pero me va a hacer esto muchas, muchas veces y querrá asegurarse de que lo estoy haciendo tan eficientemente como sea posible.
¿Hay algún motivo por el que no pueda almacenar sus datos en un vector de biblioteca de plantillas estándar en lugar de perder el tiempo con las matrices? – George
Preety sureres theres un algoritmo std ... tal vez std :: copy? – Tom
@George: Creo que está preguntando cuál es la mejor manera de hacer el equivalente de 'System.arraycopy()' en C++, ya que el OP acaba de comenzar con C++ y no se ha escuchado de 'std :: vector'. –