Básicamente me gustaría hacer algo así:¿Pasar arreglos de tamaño fijo en C++?
int[3] array_func()
{
return {1,1,1};
}
int main(int argc,char * argv[])
{
int[3] point=array_func();
}
Pero eso no parece social en C++. Sé que puedo usar vectores, pero como sé que el tamaño de la matriz es una constante, parece que es probable que se produzca una pérdida de rendimiento. También me gustaría evitar un new
si puedo, porque la asignación de elementos en la pila es más fácil y también es probable que mejore el rendimiento.
¿Cuál es la solución aquí?
Esa sería la mejor respuesta, excepto que tal estructura ya existe: http://stackoverflow.com/questions/1755000/1755017#1755017 – sbi
La elegí como la mejor respuesta porque responde mi pregunta, simple y llanamente, sin empujar una biblioteca que no pedí. No es que la respuesta de Litb sea mala, solo encontré la respuesta de desenrollar un poco más clara. –
"... empujando una biblioteca que no pedí ..." Bueno, estamos hablando de 'peor' aquí, no solo de una biblioteca. De todos modos, hay una gran posibilidad de que su implementación de lib estándar venga con 'std :: tr1 :: array' (C++ 03 o TR1) o incluso' std :: array' (C++ 1x), que es exactamente la misma . (Esto demuestra que impulsar no es solo otra biblioteca. Es un banco de pruebas para el próximo estándar de C++, fundado por miembros del comité de STD por exactamente esa razón, tiene _muy_ estándares de alta calidad y revisiones exigentes, y está contribuyendo con un montón de cosas a la próxima biblioteca estándar.) – sbi