【问题标题】:Printing struct value from a list using iterator [duplicate]使用迭代器从列表中打印结构值 [重复]
【发布时间】:2015-07-07 05:15:45
【问题描述】:

我在打印 struct Pages 中的值时遇到问题。我正在尝试从页面列表中打印 Pages 中段的值。 assignSegments() 方法为变量段赋值。这是我得到的错误。 ‘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;
};

【问题讨论】:

    标签: c++ list struct


    【解决方案1】:

    我认为cout &lt;&lt; iter-&gt;segment &lt;&lt; endl; 是您要找的。​​p>

    【讨论】:

      【解决方案2】:

      operator. 的优先级高于operator*,因此iter.segment 将首先被评估,显然这不是你想要的。

      参考C++ Operator Precedence

      你可以改变

      cout << *iter.segment << endl;
      

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

      或者只是

      cout << iter->segment << endl;
      

      【讨论】:

        猜你喜欢
        • 2015-02-27
        • 2012-12-10
        • 1970-01-01
        • 1970-01-01
        • 2022-01-25
        • 2018-04-26
        • 2021-06-21
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多