私はそのパラメータの1つとしてstd :: vectorをとるメソッドを持っています。行列にstd ::
vectorを代入して行列を初期化する方法はありますか?ここで私が以下にしようとしたことがあります。誰も私は行列にベクトル(または倍精度のポインタ)を割り当てることを達成する方法を知っていますか?前もって感謝します。マイク
void Foo(std::vector v)
{
matrix m(m, n, v);
//work with matrix...
}
ベストアンサー
これがどのように行われるかのさらに別の例がここにあります:
#include
#include
#include
#include
#include
namespace ublas = boost::numeric::ublas;
template
ublas::matrix makeMatrix(std::size_t m, std::size_t n, const std::vector & v)
{
if(m*n!=v.size()) {
;//Handle this case
}
ublas::unbounded_array storage(m*n);
std::copy(v.begin(), v.end(), storage.begin());
return ublas::matrix(m, n, storage);
}
int main() {;
std::vector vec {1, 2, 3, 4, 5, 6};
ublas::matrix mm = makeMatrix(3,2,vec);
std::cout << mm << std::endl;
}