【发布时间】:2014-01-20 05:28:37
【问题描述】:
我有一个返回 vector<string>::const_iterator 的函数。当我尝试将此返回值用作vector<string>::erase 的参数时,我收到一个错误,即const_iterator 和iterator 之间的转换是不可能的。有没有办法在不改变我的函数的返回值类型的情况下规避这个问题?谢谢!
【问题讨论】:
-
如果你想将它用作
iterator,为什么要给它一个const_iterator返回类型? -
在 C++11(你标记的)中实际上应该允许这样做
-
@Beta 函数基类将其定义为不允许返回常规迭代器的 const 函数。
-
请教这个问题。有多种方法可以将
iterator发送给同一成员,甚至可能是安全的方法。我的观点是,正确使用const是一个安全功能,一种让你不应该做的事情变得困难的方法。如果你把它放在那里,为什么不删除它?如果有人把它放在那里,你确定你知道为什么吗? -
谢谢,明白了。