C++ 错误:请求成员‘;getdata’;在‘*(&;it)>__gnu_cxx::u normal_迭代器<;标准**,标准::向量<;st*>>;::操作员->;()’*(it)——>;getdata();

C++ 错误:请求成员‘;getdata’;在‘*(&;it)>__gnu_cxx::u normal_迭代器<;标准**,标准::向量<;st*>>;::操作员->;()’*(it)——>;getdata();,c++,stl,C++,Stl,这是我试图创建一个N对象并将其存储到向量数组中的代码。并尝试使用向量类显示每个对象的数据。但编译器抛出了一个错误。如何修复它 #include <iostream> #include <vector> #include <algorithm> using namespace std; typedef struct st SLL; struct st { int id; char Name[10]; void setdata();

这是我试图创建一个N对象并将其存储到向量数组中的代码。并尝试使用向量类显示每个对象的数据。但编译器抛出了一个错误。如何修复它

#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;

typedef struct st SLL;
struct st
{
    int id;
    char Name[10];
    void setdata();
    void getdata();
    SLL * creatObject();
};

void SLL :: setdata()
{
    cout << "Enter the Data\n";
    cin >> id>> Name;
}
void SLL:: getdata()
{
    cout << id << " " << Name << endl;
}

SLL * SLL:: creatObject()
{
    SLL * newObject = new SLL();
    newObject->setdata();
    newObject->getdata();
    return newObject;
}
int main()
{
    std::vector<SLL*> v;
    for (int i = 0; i < 3; ++i)
    {
        v.push_back(creatObject());
    }
    std::vector<SLL*> ::iterator it ;
    for(it = v.begin(); it != v.end() ;it++)
    {
        *(it)->getdata();
    }
}
#包括
#包括
#包括
使用名称空间std;
类型定义结构st SLL;
结构街
{
int-id;
字符名[10];
void setdata();
void getdata();
SLL*创建对象();
};
void SLL::setdata()
{
cout>id>>名称;
}
void SLL::getdata()
{

你的意思是
(*it)->getdata();
。投票以打字错误结束。当我编译这段代码时,我得到了错误:请求“(&it)->”中的成员“getdata::”正常迭代器::运算符->(),它是指针类型“st*”(可能您打算使用“->”?)*(it)->getdata();是的,您应该编写
(*it)
,而不是
*(it)
。我又收到一个错误,即错误:在此范围中未声明“creatObject”(creatObject());因为
creatObject
SLL
的成员函数。