void foo(const std::vector<int>& value) {
std::vector<int>::iterator it = value.begin();
/* functions that increment it */
}
我需要让非const迭代器迭代const对象,我将迭代器传递给另一个函数然后递增它。但我得到一个关于尝试将const_iterator转换为迭代器的错误。我如何获得非const迭代器(如果可能的话)。
void foo(std::vector<int>& value) {
std::vector<int>::iterator it = value.begin();
/* functions that increment it */
}
当然我尝试使用非const引用但是它不允许我这样调用函数...
object.foo({0,1});
我知道最简单的解决方案是不将其作为参考而是作为副本
void foo(std::vector<int> value) {
std::vector<int>::iterator it = value.begin();
/* functions that increment it */
}
但我想让它尽可能有效(时间和记忆)。
答案 0 :(得分:1)
使用std :: vector&lt;&gt; :: const_iterator。