【问题标题】:How to iterate list of object pointed by pointer?如何迭代指针指向的对象列表?
【发布时间】:2019-09-24 21:59:21
【问题描述】:

如何从指针指向的对象列表中获取数据?

std::list<object> *myList;

std::list<object>::iterator itr;

for(itr = myList.begin(); itr != myList.end(); itr++) {
  std::cout << itr->data;
}

【问题讨论】:

  • 它可能只是 *itr->data

标签: c++ c++11 pointers stdlist


【解决方案1】:

嗯。假设object 有一个data 成员可以按原样发送到stdout,你应该写的是

std::list<object> *myList;

std::list<object>::iterator itr;

for(itr = myList->begin(); itr != myList->end(); itr++) {
  std::cout << itr->data;
}

但是,老实说,在 C++11 中,写起来要好得多:

std::list<object> *myList;

for(const object & obj : *myList) {
  std::cout << obj.data;
}

这样你就不需要迭代器声明了……

【讨论】:

    【解决方案2】:

    myList 是一个指针...

    改为myList-&gt;begin() 等

    //
    struct object
    {
        int data{};
    };
    std::list<object> *myList{nullptr};
    //myList=&xxx;
    std::list<object>::iterator itr;
    for(itr = myList->begin(); itr != myList->end(); itr++)
    {
        std::cout << "data: "  << itr->data;
    }
    //
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-04-29
      • 1970-01-01
      • 2015-03-27
      • 2019-08-24
      • 2018-09-04
      • 1970-01-01
      • 2023-02-09
      相关资源
      最近更新 更多