Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/139.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 为什么我会得到;预期的&引用;错误和;变量未在范围中声明";错误_C++ - Fatal编程技术网

C++ 为什么我会得到;预期的&引用;错误和;变量未在范围中声明";错误

C++ 为什么我会得到;预期的&引用;错误和;变量未在范围中声明";错误,c++,C++,我有以下代码 #include <iostream> #include <set> #include <string> using namespace std; template<class Container> void print(const Container &c) { Container::const_iterator itr; for (itr=c.begin();itr!=c.end();itr++){

我有以下代码

#include <iostream>
#include <set>
#include <string>
using namespace std;

template<class  Container>
void print(const Container &c)
{

   Container::const_iterator itr;
   for (itr=c.begin();itr!=c.end();itr++){
      cout<<*itr<< '\n';
}

}

int main(){

   set<string,greater<string>>s;
   s.insert("georgia");
   s.insert("saqartvelo");
   print(s);
   return 0;

}

什么可能导致这种情况?我如何解决它?

您需要
typename Container::const\u iterator
而不是
Container::const\u iterator


在编译器读取代码时,它不知道
容器
有这样的类型(它是所谓的依赖名)。

您需要
类型名容器::常量迭代器
,而不是
容器::常量迭代器


在编译器读取代码时,它不知道
容器
有这样的类型(它是所谓的依赖名)。

Alexandre对前两个错误的看法是正确的。最后两个是由于C++的一个恼人的语法限制:模板表达式中的两个右括号之间需要有一个空格:

set<string,greater<string> > s;
set;

< C++ >将其解释为右移“代码> > <代码>操作符。

< P> Alexandre对前两个错误是正确的。最后两个是由于C++的一个恼人的语法限制:模板表达式中的两个右括号之间需要有一个空格:

set<string,greater<string> > s;
set;

< >否则,C++将其解释为右移“代码> > <代码>操作符.< /P>合法问题,但简洁地说。可能是合法问题的副本,但简洁地说。AH的可能副本有其他错误吗?)实际上,我没有读过依亲关系查找……啊,还有其他错误吗?;)事实上,我没有读过家属查询。。。