Boost logo

Boost Users :

Subject: Re: [Boost-users] c++: boost::multi_array - initialize a multi_array
From: Rhys Ulerich (rhys.ulerich_at_[hidden])
Date: 2009-12-30 12:54:57


> i am trying to initialize all the elements in boost::multi_array type to
> zero, so far, with out success. At tried using std::fill for 1-dim
> boost::multi_array and it worked. Once i tried std:fill on 2-dim
> boost::multi_array it haven't worked any more.

One approach is the use multi_array::data() and
multi_array::num_elements() to get pointer-based iterators to the
underlying raw storage:

    boost::multi_array<unsigned int, 1> foo( boost::extents[10] );
    std::fill( foo.data(), foo.data() + foo.num_elements(), 0 );

    boost::multi_array<unsigned int, 2> boo( boost::extents[10][79] );
    std::fill( boo.data(), boo.data() + boo.num_elements(), 0 );

Another approach would be to use multi_array's assign member function.

HTH,
Rhys


Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net