Transpose 2Dvector / matrix

I have the following 2d vector / matrix Xand vector Yas shown below:

std::vector<double> Y; 
unsigned int ctr=2;
std::vector<std::vector<double> >X(ctr,Y);

Now I want to create a transpose of X, i.e. Xtrans, so I declare it below

std::vector<std::vector<double> >Xtrans(Y,ctr);

but this gives me the following compilation error:

test.cpp:128:58: error: no matching function for call to โ€˜std::vector<std::vector<double> >::vector(std::vector<double>&, unsigned int&)โ€™
/usr/include/c++/4.5/bits/stl_vector.h:241:7: note: candidates are: std::vector<_Tp, _Alloc>::vector(const std::vector<_Tp, _Alloc>&) [with _Tp = std::vector<double>, _Alloc = std::allocator<std::vector<double> >, std::vector<_Tp, _Alloc> = std::vector<std::vector<double> >]
/usr/include/c++/4.5/bits/stl_vector.h:227:7: note:                 std::vector<_Tp, _Alloc>::vector(std::vector::size_type, const value_type&, const allocator_type&) [with _Tp = std::vector<double>, _Alloc = std::allocator<std::vector<double> >, std::vector::size_type = unsigned int, value_type = std::vector<double>, allocator_type = std::allocator<std::vector<double> >]
/usr/include/c++/4.5/bits/stl_vector.h:215:7: note:                 std::vector<_Tp, _Alloc>::vector(const allocator_type&) [with _Tp = std::vector<double>, _Alloc = std::allocator<std::vector<double> >, allocator_type = std::allocator<std::vector<double> >]
/usr/include/c++/4.5/bits/stl_vector.h:207:7: note:                 std::vector<_Tp, _Alloc>::vector() [with _Tp = std::vector<double>, _Alloc = std::allocator<std::vector<double> >]

How can I declare Xtrans correctly?

+3
source share
4 answers

, , vector<vector<double> > , , . , . vector<double> . .

, ++ (, eigen, uBlas mtl4, , ).

+2

, : -, , std::vector, ,

std::vector<std::vector<double> >Xtrans(Y,ctr); 

, , .

std::vector (.. , X), :

explicit vector ( size_type n, const T& value= T(), const Allocator& = Allocator() );

, (ctr, Y), - , std::vector ctr Y. ( Y std::vector<double> - ctr , std::vector<double>)

ctr Y , std::vector, .

, . , X, Xtrans. - . , - : - XTrans, 'X and insert values into XTrans`.

+1

, Xtrans

std::vector<double> Y;
unsigned int ctr=2;
std::vector<std::vector<double> >X(ctr,Y);
std::vector<double> ctr_vector(2);
std::vector<std::vector<double> >Xtrans(Y.size(),ctr_vector);

Xtrans, X

0

, std::vector. .

std::vector<std::vector<double> >X(ctr,Y) ctr Y X. , X - , X std::vector, Y.

, std::vector<std::vector<double> >Xtrans(Y,ctr) std::vector. , NumPy Matlab.

, . , , .

0

All Articles