gpt4 book ai didi

C++:迭代器 - list.begin() 抛出错误

转载 作者:搜寻专家 更新时间:2023-10-31 00:07:45 24 4
gpt4 key购买 nike

我正在尝试获取列表迭代器的索引,我已阅读 this stackoverflow question并尝试了以下代码:

std::list<int> v;
std::list<int>::iterator iter = v.insert(v.begin(), 1);
int i = iter - v.begin();

令人惊讶的是它不起作用,我得到了一个错误。

error: invalid operands to binary expression

有什么问题?如何让它发挥作用?

最佳答案

v.insert 返回一个列表迭代器,该列表迭代器只满足BiDirectionalIterator .这意味着 operator- 没有为它定义。

要获取距离,您可以使用 std::distance 代替:

int diff = std::distance(v.begin(), iter);

关于C++:迭代器 - list.begin() 抛出错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52457117/

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