2013-09-02 3 views
-5

dans OpenCV comment puis-je passervecteur passe <vectoriel <Point>> par référence

vector<vector<Point> > v 

par refence à une fonction.

J'ai testé cela et le travail ne marche pas:

vector<vector<Point> > &v 
+5

Montrez-nous le code complet qui a échoué. – 0x499602D2

+1

Cela devrait fonctionner, en supposant que le second fragment de code est le paramètre de la fonction. Pourriez-vous publier le code que vous avez essayé et le message d'erreur (ou décrire le problème, s'il s'agissait d'un échec d'exécution)? –

+0

En quoi ça ne marche pas? Si vous obtenez une erreur de compilation, incluez le texte d'erreur * exact * dans votre question. Si c'est une erreur d'exécution, que se passe-t-il lorsque vous exécutez votre programme? Montrer un peu plus de code (idéalement un programme complet) serait également très utile. – simonc

Répondre

1

déclarer la fonction de prendre une référence:

void f(vector<vector<Point> > &v); 

et l'appeler avec un objet du type correct:

vector<vector<Point> > v; 
f(v); 

La fonction recevra une référence à cet objet.

4

Si votre fonction prend une référence, son prototype doit être quelque chose comme:

void func(vector<vector<Point> > &v); 

Il vous suffit de passer votre vecteur à cette fonction:

vector<vector<Point> > v; // Create your object 
func(v);     // Pass it to your function 

Le processus de passer un argument par référence est expliqué ici: http://www.learncpp.com/cpp-tutorial/73-passing-arguments-by-reference/

Questions connexes