Я работаю над кодом c++
, в который мне нужно вставить элемент по указанному индексу списка.У меня есть два списка:
list <int> objectIdList; //This list will save id's of object
list <double> objectIdDtimeList; //This list will save time duration of each particular object id.
У меня есть код, из которого я сохраняю все идентификаторы объекта в objectIdList
, который выглядит следующим образом:
Index Value
[0] 3
[1] 6
[2] 2
Теперь мне нужно сохранитьпродолжительность этих идентификаторов объектов (3, 6, 2) в objectIdDtimeList
.Мой план состоит в том, чтобы сохранить время в списке по индексу, который является идентификатором объекта.Например, для идентификатора объекта 3
его общая продолжительность будет сохранена в списке с индексом 3
.Для объекта с идентификатором 6
его продолжительность будет сохранена с индексом 6.
Для этого я планировал использовать list.insert()
, как показано ниже:
time_t start, end;
time(&start);
/*
* SOME CODE HERE
* SOME CODE HERE
*/
for (auto id : objectIdList)
{
time(&end);
double time_passed = difftime(current, start); //Getting the time duration in seconds
list<int>::iterator it = objectIdList.begin();
advance(it, id); // iterator to point to object id index
objectIdDtimeList.insert(it, time_passed);
}
Но приведенный выше коддавая ниже ошибка:
Severity Code Description Project File Line Suppression State
Error (active) E0304 no instance of overloaded function "std::list<_Ty, _Alloc>::insert [with _Ty=double, _Alloc=std::allocator<double>]" matches the argument list
Severity Code Description Project File Line Suppression State
Error C2664 'std::_List_iterator<std::_List_val<std::_List_simple_types<_Ty>>> std::list<_Ty,std::allocator<_Ty>>::insert(std::_List_const_iterator<std::_List_val<std::_List_simple_types<_Ty>>>,unsigned __int64,const _Ty &)': cannot convert argument 1 from 'std::_List_iterator<std::_List_val<std::_List_simple_types<_Ty>>>' to 'std::_List_const_iterator<std::_List_val<std::_List_simple_types<_Ty>>>'
Есть ли способ, которым я могу достичь этой функциональности.Есть ли другая альтернатива, чтобы сделать это.Спасибо