я следующие типы данных и переменные:инициализировать переменную с участием типа векторных данных
typedef Seq< vector<int> > MxInt2d;
typedef std::vector<int> edge_t;
typedef std::vector< edge_t> edge2d_t;
std::vector<edge2d_t> myEdgesIntersect;
Я пытался инициализировать myEdgesIntersect как:
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;
}
Но используя этот синтаксис при попытке отобразить переменную myEdgesIntersect это не инициализируется с заданными значениями edge2d [..] [..] (которые во время отображения в порядке). Я попытался отобразить переменную myEdgesIntersect перед push_back, и у меня возникла ошибка шины, поэтому я думаю, что проблема в том, что переменная не инициализирована. Я пытался инициализировать его, как:
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);
, но я получил ту же ошибку, как и на самом деле это то же самое, как и в цикле. По-видимому, я не знаю, как инициализировать эту довольно сложную переменную, которая мне действительно нужна. Если у вас есть предложения, я буду более чем счастлив.
заранее спасибо, Мадалины
Это, вероятно, решить эту проблему, избегая его, но он не решает, почему его код неправильно. –