我有以下数据类型和变量:初始化变量涉及矢量数据类型
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 [..] [..](在显示过程中没问题)初始化。我试图在push_back之前显示变量myEdgesIntersect,并且出现总线错误,所以我认为问题在于该变量未初始化。我试图对其进行初始化,如:
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);
,但我得到了同样的错误,因为实际上是同样的事情,在环。显然我不知道如何初始化这个非常复杂的变量,我真的需要。如果您有任何建议,我会更高兴。
由于事先 madalina
这可能会修复,避免它的问题,但它并没有解决,为什么他的代码是错误的。 – 2009-04-16 12:34:20