gpt4 book ai didi

c++ - 如何在C++中的给定索引处插入列表中的项目

转载 作者:行者123 更新时间:2023-11-28 01:21:03 25 4
gpt4 key购买 nike

我正在编写一个 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.

我有一段代码,我将所有对象 ID 保存在 objectIdList 中,如下所示:

Index    Value
[0] 3
[1] 6
[2] 2

现在我需要在 objectIdDtimeList 中保存这些对象 ID (3, 6, 2) 的持续时间。我的计划是将持续时间保存在列表中的索引处,即对象 ID。例如,对于对象 id 3,其总持续时间将保存在索引为 3 的列表中。对于对象 id 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>>>'

有什么方法可以实现这个功能。有没有其他选择可以做到这一点。谢谢

最佳答案

您在这里混合了两种不同的迭代器类型。

list<int>::iterator it = objectIdList.begin();

这是 objectIdList 的迭代器,但为了调用 objectIdDtimeList.insert(...),您需要 objectIdDtimeList 的迭代器.因此,尝试将上面的行更改为

auto it = objectIdDtimeList.begin();

使用 id 推进正确的迭代器应该仍然有效,并且插入应该成功。

关于c++ - 如何在C++中的给定索引处插入列表中的项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56271517/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com