je les types et les variables de données suivantes:initialize variables impliquant vecteur type de données
typedef Seq< vector<int> > MxInt2d;
typedef std::vector<int> edge_t;
typedef std::vector< edge_t> edge2d_t;
std::vector<edge2d_t> myEdgesIntersect;
J'ai essayé d'initialiser myEdgesIntersect comme:
edge2d_t edge2d(2);
//creating the vector of edges of intersections whenever an intersection is detected
for (int i=0;i<1;i++){
edge2d[0][0]=sweepEvents[i][0];
edge2d[0][1]=sweepEvents[i][1];
edge2d[1][0]=sweepEvents[i+1][0];
edge2d[1][1]=sweepEvents[i+1][1];
std::cout<<edge2d[0][0]<<" "<<edge2d[0][1]<<endl;
std::cout<<edge2d[1][0]<<" "<<edge2d[1][1]<<endl;
myEdgesIntersect.push_back(edge2d);
std::cout<<myEdgesIntersect[i][0][0]<<" "<<myEdgesIntersect[i][0][1]
<<" "<<myEdgesIntersect[i][1][0]<<" "<<myEdgesIntersect[i][1][1]<<endl;
}
Mais en utilisant cette syntaxe lorsque je tente d'afficher la variable myEdgesIntersect ceci n'est pas initialisé avec les valeurs données de edge2d [..] [..] (qui pendant l'affichage sont correctes). J'ai essayé d'afficher la variable myEdgesIntersect avant le push_back et j'ai eu une erreur de bus, donc je pense que le problème est que la variable n'est pas initialisée. J'ai essayé de l'initialiser comme:
edge2d_t edge2d;
edge2d[0][0]=0;
edge2d[0][0]=0;
edge2d[0][0]=0;
edge2d[0][0]=0;
edge2d[0][0]=0;
myEdgesIntersect.push_back(edge2d);
mais je suis la même erreur, comme cela est en fait la même chose que dans la boucle. Apparemment, je ne sais pas comment initialiser cette variable assez compliquée dont j'ai vraiment besoin. Si vous avez des suggestions, je serais plus qu'heureux.
merci à l'avance, Madalina
Ce serait probablement résoudre le problème en évitant, mais il ne répond pas pourquoi son code est erroné. –