Manera correcta de trabajar con vectores de matrices.
¿Alguien podría decir cuál es la forma correcta de trabajar con un vector de matrices?
Declaré un vector de matrices ( vector<float[4]>
) pero lo obtuve error: conversion from 'int' to non-scalar type 'float [4]' requested
al intentarlo resize
. ¿Qué está pasando mal?
No puede almacenar matrices en un vector
contenedor ni en ningún otro. El tipo de elementos que se almacenarán en un contenedor (llamado tipo de valor del contenedor ) debe ser copiable y asignable. Las matrices no son ninguna de las dos cosas.
Sin embargo, puedes usar una array
plantilla de clase, como la proporcionada por Boost, TR1 y C++0x:
std::vector<std::array<double, 4> >
(Querrá reemplazar std::array
con std::tr1::array
para usar la plantilla incluida en C++ TR1, o boost::array
usar la plantilla de las bibliotecas de Boost . Alternativamente, puede escribir la suya propia; es bastante sencillo).
Usar:
vector<vector<float>> vecArray; //both dimensions are open!