Я хочу добавить контакт по некоторому индексу, и я не могу понять, почему этот код не работает.Я хочу добавить объект в список контейнеров
У меня проблема с этой линии:
a = (*it);
и это одна:
tmp.push_back(listOf[a]);
Это код:
void insert(list<Contact> &listOf, int index, const Contact &info) {
list<Contact> tmp;
int a;
for(list<Contact>::iterator it = listOf.begin(); it != listOf.end(); it++)
{
a = (*it);
if(a == index)
{
tmp.push_back(info);
index -= 2;
it--;
}
else
tmp.push_back(listOf[a]);
}
listOf = tmp;
}
У меня есть структура Связаться с именем и фамилией (строка).
Возможно, что-то не так с этими двумя линиями? Или это весь код неправильный? Если это так, я был бы рад, если бы кто-то смог получить мне решение.
'* it' - тип контакта, это не' int' – billz
'(* it);' дает 'Contact' не' int'. Чтобы индекс использовал отдельный счетчик. –
вы можете использовать std :: vector вместо std :: list в своей программе. Это сделало бы вашу жизнь очень легкой, так как вы хотите что-то сделать с индексом в контейнере. –