使用迭代器从列表中打印结构体值



我有麻烦从我的结构页打印值。我试图从页面列表中打印页段的值。assignSegments()方法将值赋给变量segment。这是我得到的错误。' std::list::iterator '没有名为' segment '的成员

这是我到目前为止的代码。如果你需要更多的代码,请告诉我。

下面的代码在我的主

Process child;
char c = 'A';
c = c+i;
child.letter = c;
assignSegments(child.childPages, child.letter, CreateRandomNumber());
for(list<Pages>::iterator iter = child.childPages.begin(); iter != child.childPages.end(); i++)
{
     cout << *iter.segment << endl; // having trouble printing here
}

这是我正在使用的结构体。

struct Pages
{    
    string segment;
    char validBit;
    int refByte;
    Pages * pagePointer;
    int* memoryPointer;
};
struct Process
{    
    char letter;
    list<Pages> childPages;
};

我想cout << iter->segment << endl;就是你要找的。

operator.operator*具有更高的优先级,因此iter.segment将首先求值,显然这不是您想要的。

c++操作符优先级参考

你可以修改

cout << *iter.segment << endl;

cout << (*iter).segment << endl;

还是

cout << iter->segment << endl;

最新更新