Я думал, что понял итераторы и обратился к et c. но очевидно нет. Посмотрите мой код ниже, который является просто примером.
Мне нужно иметь возможность передавать по указателю или ссылаться на каждую структуру от mystructs до MyFun c () . Функция должна иметь возможность обновлять фактическую переданную структуру, а не путем копирования или значения.
Я получаю ошибку компилятора:
error: cannot convert 'MY_STRUCT' to 'MY_STRUCT*' for argument '1' to 'void MyFunc(MY_STRUCT*)'
Если я просто передам адрес итератора, это тоже не сработает.
Что такое правильный способ сделать это. Заранее спасибо.
typedef struct
{
int var1;
int var2;
std::string name;
}MY_STRUCT;
std::list<MY_STRUCT> mystructs;
void MyFunc(MY_STRUCT*)
{
// Do something
}
// populate the list with structs etc.. not included here
//.....
for (std::list<MY_STRUCT>::iterator it = mystructs.begin();it != mystructs.end(); ++it)
{
MyFunc(*it);
}