【问题标题】:list iterator of segments error C++段错误C++的列表迭代器
【发布时间】:2016-01-10 21:28:02
【问题描述】:

我有这张 C++ 代码:

#include <list>
#include <iostream>
using namespace std;


struct point
{
int x;
int y;
} ;
typedef struct point point;


struct segment
{
point* p1;
point* p2;
} ;
typedef struct segment segment;

list<segment*> liste;


int main()

{
    point A,B,C,D;
    A.x=0;A.y=0;
    B.x=1;B.y=0;
    C.x=0;C.y=1;
    D.x=1;D.y=1;

    segment AB,BC,CD,DA;
    AB.p1=&A;AB.p2=&B;
    BC.p1=&B;BC.p2=&C;
    CD.p1=&C;CD.p2=&D;
    DA.p1=&D;DA.p2=&A;
    liste.push_back(&AB);
    liste.push_back(&BC);
    liste.push_back(&CD);
    liste.push_back(&DA);

     for(list<segment*>::iterator it = liste.begin(); it!=liste.end(); ++it)
    {cout <<"Point1 :(" << *it->p1->x <<endl;

    }
}

错误是:

请求'* it.std::_List_iterator<_tp>::operator->()'中的成员'p1',它是指针类型'segment*'(也许你打算使用'->'? )

我无法修复这个错误 任何帮助将不胜感激^^

【问题讨论】:

    标签: c++ list pointers


    【解决方案1】:
        cout << "Point1 :(" << (*it)->p1->x << endl;
    

    您需要澄清您想要 *it 的 -> 运算符,而不是 *(it->...)。

    【讨论】:

      猜你喜欢
      • 2015-10-29
      • 1970-01-01
      • 2017-10-10
      • 1970-01-01
      • 2015-05-19
      • 1970-01-01
      • 1970-01-01
      • 2013-11-10
      • 2013-09-23
      相关资源
      最近更新 更多