我在声明遍历 map 并查找值的迭代器时遇到问题。我收到“‘fibiter’之前的预期初始化程序”错误。
map <int, int> fibHash;
int memoized_fib(int n)
{
map <int, int> iterator fibiter = fibHash.find(n); //ERROR HERE
if(fibiter != fibHash.end())
return *fibiter;
int fib_val;
if(n <= 1)
fib_val = 1;
else
fib_val = memoized_fib(n - 1) + memoized_fib(n - 2);
fibHash[n] = fib_val;
return fib_val;
}
int main()
[..]
最佳答案
您忘记使用范围解析运算符,::
.编译器认为你声明了一个 map<int, int>
名为 iterator
,因此当它找到 fibiter
时会非常困惑.
map<int, int>::iterator fibiter
是你想要的
关于c++ - Map迭代器遍历技术,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12754949/