gpt4 book ai didi

c++ - vector 迭代器

转载 作者:行者123 更新时间:2023-11-30 01:29:37 25 4
gpt4 key购买 nike

我有一个这样的 vector

std::vector<Sprite*> mDrawings;
std::vector<Sprite*>::iterator it = mDrawings.begin();

这会报错

Error: no suitable user-defined conversion from std::_Vector_iterator<std::_Vector_val<Sprite *, std::allocator<Sprite *>>> to std::_Vector_iterator<std::_Vector_val<Sprite *, std::allocator<Sprite *>>> exists

但是如果我执行以下操作

typedef std::vector<Sprite*> list;
list mDrawings;
list::iterator it = mDrawings.begin();

然后就可以了???。

更新:抱歉,错误似乎是由于与当前代码无关的错误而产生的。我刚刚看到 IDE 带有红色下划线,我认为这就是我的应用程序无法编译的原因。

最佳答案

您粘贴的代码实际上并未显示错误。然而,这是黑暗中的另一个镜头:

是否有可能在您的原始情况下,mDrawings 是某个类的成员变量(只是从 m 前缀中猜测)并且您的真实代码在常量方法?如果是这样,您将尝试将 const_iterator(因为这就是在 const vector 上调用 begin() 的结果)分配给 iterator,这是不可能的。

尝试使用

std::vector<Sprite *>::const_iterator it = mDrawings.begin();

这样效果更好吗?

关于c++ - vector 迭代器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5635301/

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