stdmap - c++ map containing a list -
i create map key int, , value list of arrays (int[][]
).
i tried :
const int r = 4, c = 5; std::map<int, std::list<int[r][c]> > s;
but won't compile , don't understand why ... (r , c parameter of programme not alter during execution).
arrays not re-create constructable or re-create assignable, element of standard container must be. code compile is, array type breaks requirements standard containers , you'll run undefined behaviour. can't have std::list<int[r][c]>
. however, c++11 provides nice new compile-time constant sized std::array
pleasure:
typedef std::array<std::array<int, c>, r> array_2d; typedef std::list<array_2d> array_list; std::map<int, array_list> s;
otherwise, other alternatives utilize std::vector
instead of std::array
(preferred), or have std::list
of int**
, dynamically allocate 2d arrays.
however, i'd consider bit of rethink of design. construction want? should of info grouped struct
?
c++ stdmap stdlist
No comments:
Post a Comment