gpt4 book ai didi

c++ - VC++的迭代器声明

转载 作者:行者123 更新时间:2023-11-28 06:01:55 25 4
gpt4 key购买 nike

我正在尝试声明一个迭代器,但我遇到了问题。我正在使用 VC++2010

#include<iterator> 
#include<map>
using namespace std;
using std::regex_replace;
template <class KTy, class Ty>
void PrintMap(map<KTy, Ty> map)
{
**:iterator iterator;
for (iterator p = map.begin(); p != map.end(); p++)
cout << p->first << ": " << p->second << endl;**
}

错误信息是:

Error 1 error C2143: syntax error : missing ';' before ':'( for :iterator iterator;)

最佳答案

首先,您想将参数的名称更改为 map 以外的名称,这是不明确的,因为它也是一个类型名称。

假设您想要迭代器类型的 typedef,请使用:

typedef typename map<KTy, Ty>::iterator iterator;

for (iterator p = my_map.begin(); p != my_map.end(); p++) {
cout << p->first << ": " << p->second << endl;
}

注意:您需要 typename 关键字,因为类型取决于模板参数。

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

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