0

テンプレート化されたsparse_vector<T>クラスがあり、Boost UBLAS も使用しています。との間の暗黙的な変換を提供するにはどうすればよいですか?sparse_vector<double>boost::numeric::ublas::compressed_vector<double>

std::vector<double>との間の同様の変換も提供したいと思いboost::numeric::ublas::vector<double>ます。

(C++0x を有効にして gcc 4.4 を使用しています。)

4

1 に答える 1

1

これらの型には反復子コンストラクターがあると思います。その仮定が正しければ、次のように書くだけで簡単になります。


template < typename OutputVector, typename InputVector >
OutputVector vector_cast(InputVector const& input)
{
  return OutputVector(input.begin(), input.end());
}

次のように使用します。compressed_vector<double> vect = vector_cast<compressed_vector<double> >(my_sparse_vector);

于 2010-06-07T20:51:54.510 に答える