如何在C++中的vector容器中打印类指针?
游戏列表是类声明。vector是包含一组game_list类指针的向量。我试图打印向量中每个游戏列表的属性。到目前为止,我已经尝试了mainVector[1]。名称,但似乎不是这样。有什么建议吗?您需要像上面一样取消对指针的引用如何在C++中的vector容器中打印类指针?,c++,class,vector,C++,Class,Vector,游戏列表是类声明。vector是包含一组game_list类指针的向量。我试图打印向量中每个游戏列表的属性。到目前为止,我已经尝试了mainVector[1]。名称,但似乎不是这样。有什么建议吗?您需要像上面一样取消对指针的引用 class game_list { public: string name; }; game_list *pointer; int main() { vector<game_list*> mainVector;
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;
}
或
哦,永远正确,向量指数从0开始。要获取第一个元素,还可以使用mainVector.front
但是,您可能根本不想使用指针。如果您确实这样做,请使用boost::ptr_向量或std智能指针向量。现在,此代码存在内存泄漏。您需要取消对指针的引用,就像上面所做的那样
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;
}
或
哦,永远正确,向量指数从0开始。要获取第一个元素,还可以使用mainVector.front
但是,您可能根本不想使用指针。如果您确实这样做,请使用boost::ptr_向量或std智能指针向量。现在这段代码有内存泄漏。首先-索引从零开始,所以mainVector[1]-不正确。
其次-如果取消引用指针mainVector[0]->name或*mainVector[0]。name将给出正确的值。首先-索引从零开始,因此mainVector[1]-不正确。
其次-如果取消引用指针mainVector[0]->name或*mainVector[0]。name将给出正确的值。从代码中,您应该能够执行以下操作:
cout << (*(mainVector[1])).name;
根据您的代码,您应该能够执行以下操作:
cout << (*(mainVector[1])).name;
这是一个课堂项目,我很确定我的老师没有boost库:@user2086751,所以将boost::ptr_向量添加到你的源代码中。Boost库大多仅限于页眉:这是一个课堂项目,我很确定我的老师没有boost库:@user2086751,所以将boost::ptr_向量添加到你的源代码中。Boost库大多仅限于页眉: