Как перебрать список объектов, на которые указывает указатель? - PullRequest
2 голосов
/ 25 сентября 2019

Как получить данные из списка объектов , на который указывает указатель?

std::list<object> *myList;

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

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

Ответы [ 2 ]

2 голосов
/ 25 сентября 2019

Хммм.Предполагая, что 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;
}

и, таким образом, вам не нужно объявление итератора ...

0 голосов
/ 25 сентября 2019

myList - это указатель ...

вместо myList->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;
}
//
...