我有一个类顶点和一个类图来绘制图形。我希望在Vertex类型的Vector中存储一些顶点,即Vertex类的对象,但由于错误很少,我无法直接存储vertex对象,所以我将对象的引用存储在Vector中。但在显示时,我希望在控制台上显示矢量名称,但我不能这样做。可能是我的语法不正确。请帮帮我。下面是我的类和main()的代码。
我的要求是显示"v1","v2",...等等,在控制台上。但是现在它只显示顶点上的地址。
发布于 2011-04-10 08:18:44
在我看来,在第一个for循环中,您并没有从"g1.Vertice1i“中获得实际的值,而是试图打印指针。Vertice1的类型是vector<Vertex<VertexType, EdgeType>*> (指向顶点对象的指针的向量),所以您需要更改这一行,以便它使用->操作符来取消引用指针,并调用"Vert“并打印返回结果,而不是尝试打印指针的值。
变化
std::cout << g1.Vertice1[i]<<endl;至
std::cout << g1.Vertice1[i]->Vert() <<endl;发布于 2011-04-10 08:16:11
看看您添加到g1.Vertice1向量中的内容:
g1.Vertice1.push_back(&v1);
g1.Vertice1.push_back(&v2);向量的元素是指针,而不是Vertex对象。这是有意义的,因为Vertice1被声明为指向特定类型Vertex的指针向量。
当您迭代g1.Vertice1向量并输出它的元素时,您就是在输出指针,这就是为什么您会看到地址。因此,考虑取消引用循环中试图打印出顶点名称的指针。
https://stackoverflow.com/questions/5608815
复制相似问题