首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >通过指针打印值

通过指针打印值
EN

Stack Overflow用户
提问于 2011-04-10 08:08:16
回答 2查看 1.1K关注 0票数 2

我有一个类顶点和一个类图来绘制图形。我希望在Vertex类型的Vector中存储一些顶点,即Vertex类的对象,但由于错误很少,我无法直接存储vertex对象,所以我将对象的引用存储在Vector中。但在显示时,我希望在控制台上显示矢量名称,但我不能这样做。可能是我的语法不正确。请帮帮我。下面是我的类和main()的代码。

我的要求是显示"v1","v2",...等等,在控制台上。但是现在它只显示顶点上的地址。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-04-10 08:18:44

在我看来,在第一个for循环中,您并没有从"g1.Vertice1i“中获得实际的值,而是试图打印指针。Vertice1的类型是vector<Vertex<VertexType, EdgeType>*> (指向顶点对象的指针的向量),所以您需要更改这一行,以便它使用->操作符来取消引用指针,并调用"Vert“并打印返回结果,而不是尝试打印指针的值。

变化

代码语言:javascript
运行
复制
std::cout << g1.Vertice1[i]<<endl;

代码语言:javascript
运行
复制
std::cout << g1.Vertice1[i]->Vert() <<endl;
票数 1
EN

Stack Overflow用户

发布于 2011-04-10 08:16:11

看看您添加到g1.Vertice1向量中的内容:

代码语言:javascript
运行
复制
g1.Vertice1.push_back(&v1);
g1.Vertice1.push_back(&v2);

向量的元素是指针,而不是Vertex对象。这是有意义的,因为Vertice1被声明为指向特定类型Vertex的指针向量。

当您迭代g1.Vertice1向量并输出它的元素时,您就是在输出指针,这就是为什么您会看到地址。因此,考虑取消引用循环中试图打印出顶点名称的指针。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5608815

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档