У меня есть функция int func(data& dt)
. Это s need to use the list of structures
lst . It
s предложил, чтобы на карте и в списке были некоторые элементы (но в моем примере он имеет один элемент). Мне нужно перебирать список и нажимать каждый элемент в функцию func
по ссылке.Передача итератора по ссылке дает ошибку: невозможно преобразовать параметр 1 из 'const data' в 'data &
#include <iostream>
#include <map>
#include <algorithm>
#include <list>
#include <string>
typedef struct{
char inf[3];
}data;
std::map<int, data*> mp;
std::list<data> lst;
int func(data& dt){
...
}
int main(){
...
//iterate through list
std::list<data>::const_iterator iterator;
for (iterator = lst.begin(); iterator != lst.end(); ++iterator) {
data param = *iterator;
func(param);
//func(*iterator); // doesn`t work!
}
return 0;
}
Проблема заключается в том: func
Безразлично пары t work with *iterator. Why should I do this:
данных = * iterator`, чтобы заставить его работать? Благодарим за помощь!
Когда вы говорите «не работает», что вы подразумеваете под этим? Вы получаете ошибки сборки? Вы получаете ошибки времени выполнения? Получаете ли вы неправильные результаты? Вы должны указать это, включая фактические ошибки, если они есть. –
А, простите. Не работает = ошибка C2664: 'func': невозможно преобразовать параметр 1 из 'const data' в 'data &' – user3856196