Envoyé par
xavierdestev
Je penses que cela est due au fait que je créé un vecteur à chaque utilisation de *.
La seule façon d'en être sur est le profiling.
vecteur tridiag::operator*(const vecteur V) {
Il y à ici une copie inutile, tu peux passer une ref en paramètre.
Tu peux aussi éviter la création d'un nouveau vecteur, si tu en possède déja un (si possible à la bonne taille)
1 2 3 4 5 6 7 8
| void dot(const vecteur& V, vecteur& result) {
int N=V.size();
if(result.size() != N) {
result.resize(N);
}
result(0) = ...;
...
} |
Partager