Boost logo

Ublas :

Subject: Re: [ublas] How to instantiate ublas vector from std::vector
From: James C. Sutherland (James.Sutherland_at_[hidden])
Date: 2009-04-13 14:36:33


> I would like to avoid copying the data. That could probably be
> done, but would not be a great solution.
>
>
> Have a look at array adaptors. For example,
>
> typedef boost::numeric::ublas::shallow_array_adaptor<double>
> ArrayAdaptor;
> typedef boost::numeric::ublas::vector<double,ArrayAdaptor>
> VecType;
>
> vector<double> fieldValues;
> // ... initialize fieldValues ...
>
> VecType vec( npts, ArrayAdaptor(npts,fieldValues) );
> vector<double>::iterator ival = fieldValues.begin();
> for( VecType::iterator i=vec.begin(); i!=vec.end(); ++i, ++ival ){
> *i = *ival;
> }
>
> Thanks for the suggestion, but how is this any different than
> copying the data?
>
In this case, the VecType object does not actually copy the data.