Boost logo

Ublas :

Subject: Re: [ublas] Howto convert std::vector to Ublas Vector
From: Jesse Manning (manning.jesse_at_[hidden])
Date: 2009-02-02 11:22:08


You must give the ublas::vector the correct initial size if you are going
to assign to its elements like that

int main() {
  std::vector <double> theP;
   theP += 0.4, 0.2, 0.2, 0.2, 0.2;

   //************** notice how this line has changed *****************/
   ublas::vector <double> Test(theP.size());

   for (int i = 0; i < theP.size(); i++) {
       Test(i) = theP[i];
   }
}
// End

On Sun, Feb 1, 2009 at 11:03 PM, Gundala Viswanath <gundalav_at_[hidden]>wrote:

> Dear all,
>
> Is there a way to do it?
> Why my code below can compile but can't execute?
> Is there a right way to do it
>
>
> //___ BEGIN__
> #include <iostream>
> #include <vector>
> #include <boost/numeric/ublas/vector.hpp>
> #include <boost/assign/std/vector.hpp>
> #include <vector>
> #include <stdio.h>
> #include <stdlib.h>
> using namespace boost::assign;
> using namespace std;
> namespace ublas = boost::numeric::ublas;
>
> int main() {
> std::vector <double> theP;
> theP += 0.4, 0.2, 0.2, 0.2, 0.2;
>
> ublas::vector <double> Test;
> for (int i = 0; i < theP.size(); i++) {
> Test(i) = theP[i];
> }
> }
> // End
>
> The error it gave is this:
> Check failed in file
> /opt/local/include/boost/numeric/ublas/storage.hpp at line 195:
> i < size_
> terminate called after throwing an instance of
> 'boost::numeric::ublas::bad_index'
> what(): bad index
>
>
> - Gundala Viswanath
> Jakarta - Indonesia
> _______________________________________________
> ublas mailing list
> ublas_at_[hidden]
> http://lists.boost.org/mailman/listinfo.cgi/ublas
>