通过指针打印值
Printing values through pointers
我有一个类Vertex和一个类Graph来绘制图形。我希望在Vertex类型的向量中存储几个顶点,即顶点类的对象,但由于一些错误,我无法直接存储顶点对象,所以我将对象的引用存储在向量中。但是,在显示时,我希望在控制台上显示矢量名称,我无法这样做。可能是我的语法不对。请帮帮我。下面是类和main()的代码。
我的要求是显示"v1", "v2",…等等,在控制台上。但是现在它只显示顶点上的地址
从我所看到的,在第一个for循环中,您没有从"g1 "中获得实际值。Vertice1[i]",但试图打印指针。Vertice1的类型是vector<Vertex<VertexType, EdgeType>*>
(指向顶点对象的指针向量),所以你需要改变行,使它使用->操作符来解引用指针和调用"Vert",并打印其返回值,而不是试图打印指针的值。
std::cout << g1.Vertice1[i]<<endl;
std::cout << g1.Vertice1[i]->Vert() <<endl;
看看你在g1.Vertice1
向量中添加了什么:
g1.Vertice1.push_back(&v1);
g1.Vertice1.push_back(&v2);
vector的元素是指针,而不是Vertex
对象。考虑到Vertice1
被声明为指向特定类型Vertex
的指针向量,这是有意义的。
当你迭代g1.Vertice1
向量并输出它的元素时,你因此输出指针,这就是为什么你看到地址。因此,考虑在试图打印顶点名称的循环中解引用这些指针。
相关文章:
- 在C++中打印指向不同基元数据类型的指针的内存地址
- 这个指针和内存代码打印是什么?我不知道是打印垃圾还是如何打印我需要的值
- 加载有空指针的字符数组的打印值
- 指向整数数组和打印总和的指针
- 为什么在C++中增加指针后打印了一个值而不是 NULL/0?
- 打印空指针时,std::cout 可以打印 "NULL" 而不是 0 吗?
- 为什么我的函数无法使用指针打印多维数组的元素?
- 如何取消引用和打印指针数组的每个元素?
- 将指针传递给函数 - 为什么我无法打印地址?
- 打印带有指针的参数和环境
- 如何打印指针的地址?
- 可视C++打印指针无法确认显示基础
- 打印指针会导致分段错误
- 打印指针到chuchar的值
- 打印指针指向的内存位置和值
- 如何用循环在C 中打印指针
- 如何从方法中打印指针的值
- 正在获取ostream模板以打印指针列表中的实例属性
- 如何打印指针字符数组
- C++打印指针的值会产生奇怪的结果