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类指针的 vector 。我正在尝试打印 vector 中每个game_list的属性。到目前为止,我已经尝试了mainVector[1].name,但似乎无法正常工作。有什么建议吗?

最佳答案

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

cout << mainVector[1]->name;

要么
cout << (*(mainVector[1])).name;

哦,对于ForEveR, vector 索引从0开始。要获取第一个元素,还可以使用mainVector.front()

但是,您可能根本不想使用指针。如果确定可以,请使用boost::ptr_vectorstd智能指针 vector 。现在,此代码具有内存泄漏

关于c++ - 如何从C++中的 vector 容器中打印类指针?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16606497/

10-10 16:54