gpt4 book ai didi

c++ - map::iterator 作为参数类型

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:16:33 25 4
gpt4 key购买 nike

我有一个带有私有(private)映射成员的模板类

template <typename T>
class MyClass
{
public:
MyClass(){}
private:
std::map<T,T> myMap;
}

我想创建一个接受映射迭代器的私有(private)方法

void MyFunction(std::map<T,T>::iterator &myIter){....}

但是,这会出现编译错误:标识符“迭代器”。我不需要传递一个抽象迭代器,因为 MyFunction 知道它是一个映射迭代器(并且只会用作 myMap 的交互器)并且会这样对待它(访问和修改 myIter->second)。将 myIter->second 传递给 MyFunction 是不够的,因为 MyFunction 还需要能够++myIter;。

最佳答案

编译器不知道 std::map<T,T>::iterator是一种类型——它可以是任何类型取决于 std::map<T,T>是。您必须使用 typename std::map<T,T>::iterator 明确指定它.

关于c++ - map<T,T>::iterator 作为参数类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3416273/

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