如何在C++中的vector容器中打印类指针?

如何在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;

游戏列表是类声明。vector是包含一组game_list类指针的向量。我试图打印向量中每个游戏列表的属性。到目前为止,我已经尝试了mainVector[1]。名称,但似乎不是这样。有什么建议吗?

您需要像上面一样取消对指针的引用

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库大多仅限于页眉: