如何在c++中从vector容器中打印类指针
how to print a class pointer from within a vector container in c++?
class game_list
{
public:
string name;
};
game_list *pointer;
int main()
{
vector<game_list*> mainVector;
pointer=new game_list;
cin>>pointer->name;
mainVector.push_back(pointer);
cout << "Hello world!" << endl;
cout << mainVector[1];
return 0;
}
game_list
是类声明。vector<game_list*>
是包含一堆game_list
类指针的向量。我试图打印向量内的每个game_list
的属性。到目前为止,我已经尝试过,mainVector[1].name
,但似乎它不工作的方式。有什么建议吗?
您需要取消对指针的引用,就像上面所做的那样。
cout << mainVector[1]->name;
或
cout << (*(mainVector[1])).name;
哦,永远是对的,向量索引从0开始。要获得第一个元素,您也可以使用mainVector.front()
。
然而,你可能根本不想使用指针。如果您确定需要,请使用boost::ptr_vector
或std
智能指针的向量。现在这段代码有一个内存泄漏
首先-索引从0开始,因此mainVector[1]
-不正确。其次,如果你解引用你的指针mainVector[0]->name
或(*mainVector[0]).name
将给出正确的值。
从您的代码中,您应该能够做到:
cout << mainVector[0]->name << endl;
相关文章:
- 在C++中打印指向不同基元数据类型的指针的内存地址
- 这个指针和内存代码打印是什么?我不知道是打印垃圾还是如何打印我需要的值
- 加载有空指针的字符数组的打印值
- 指向整数数组和打印总和的指针
- 为什么在C++中增加指针后打印了一个值而不是 NULL/0?
- 打印空指针时,std::cout 可以打印 "NULL" 而不是 0 吗?
- 为什么我的函数无法使用指针打印多维数组的元素?
- 如何取消引用和打印指针数组的每个元素?
- 将指针传递给函数 - 为什么我无法打印地址?
- 打印带有指针的参数和环境
- 如何打印指针的地址?
- 可视C++打印指针无法确认显示基础
- 打印指针会导致分段错误
- 打印指针到chuchar的值
- 打印指针指向的内存位置和值
- 如何用循环在C 中打印指针
- 如何从方法中打印指针的值
- 正在获取ostream模板以打印指针列表中的实例属性
- 如何打印指针字符数组
- C++打印指针的值会产生奇怪的结果