Me gustaría usar std::array
de C++ 11 como un campo de mi propia clase. Toma dos parámetros de plantilla (primero define el tipo de datos, segundo define el tamaño de una matriz).C++ 11 std :: array
Pero conozco el segundo parámetro solo en el constructor. No estoy familiarizado con el estándar C++ 11, pero supongo que es imposible establecer un parámetro de plantilla durante la ejecución.
¿Hay alguna alternativa para std::array
? std::vector
es probablemente un poco demasiado, porque nunca voy a cambiar el tamaño de la misma.
Yo diría usar un std :: vector sobre un unique_ptr, el primero es compatible con todas las funciones de biblioteca estándar que funcionan en los iteradores. De hecho, el objetivo de std :: array es proporcionar dicha interfaz sobre una matriz normal. –
@ user1131467: De hecho, 'std :: vector' es mucho más conveniente; pero el OP expresó una preocupación acerca de la eficiencia, por lo que quizás sea importante guardar algunos bytes. –
Si va a escribir un contenedor de estilo STL, al menos también debería saber su tamaño. No puede preocuparse por la capacidad. – UncleBens