Bonjour,
J'ai besoin d'utiliser des vecteurs creux pour faire quelques truc en math. J'ai donc pensé à boost::ublas et notamment la classe mapped_vector.
Toutefois j'ai besoin d'étendre la classe et je voudrais pouvoir exposer entre autres des operateurs comme +, * ...
Ceux-ci sont déjà utilisables sur mapped_vector, mais le retour est un boost::numeric::ublas::vector_binary<....> donc j'ai un peu de mal à les exposer.
Code :
- using namespace boost::numeric::ublas; //juste pour l'exemple, pas taper
- class MyVectorUBlas : private mapped_vector<double>{
- public:
- MyVectorUBlas(size_type n = 0):mapped_vector<Feature>(n){}
- MyVectorUBlas(const mapped_vector<Feature>& mv):mapped_vector<Feature>(mv){}
- MyVectorUBlas operator + (const MyVectorUBlas& v) const {
- ???????
- }
- };
|
Par exemple, le code suivant fonctionne, mais l'on doit bien pouvoir faire mieux.
Code :
- MyVectorUBlas operator + (const MyVectorUBlas& v) const{
- MyVectorUBlas tmp = *this;
- tmp += v;
- return tmp;
- }
|
J'espère m'être à peu près fait comprendre.
Merci d'avance
Message édité par Lan Wezel le 09-09-2010 à 17:36:50