Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/templates/2.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++_Templates - Fatal编程技术网

C++ 如何修复错误,迭代器未在此范围内声明'';和'';迭代器不命名类型';

C++ 如何修复错误,迭代器未在此范围内声明'';和'';迭代器不命名类型';,c++,templates,C++,Templates,我在练习标准模板库,在那个里我替换了vector::iterator itr;带自动itr;出现一个错误,说明未在范围中声明itr,并且itr未命名类型 我包含了迭代器头文件,但错误没有得到修复 auto itr= v.begin(); sort(v.begin(), v.end()); for(; itr!=v.end();itr++){ cout<<"Value => "<<*itr<<endl; } auto-itr=v.begin();

我在练习标准模板库,在那个里我替换了vector::iterator itr;带自动itr;出现一个错误,说明未在范围中声明itr,并且itr未命名类型

我包含了迭代器头文件,但错误没有得到修复

auto itr= v.begin();
sort(v.begin(), v.end());
for(; itr!=v.end();itr++){
    cout<<"Value => "<<*itr<<endl;
}
auto-itr=v.begin();
排序(v.begin(),v.end());
对于(;itr!=v.end();itr++){

cout编译器似乎不将
auto
视为一种类型。对于g++编译器,请尝试参数
-std=c++11
。对于MSVC,请在属性窗口中配置受支持的标准。

您使用的编译器/IDE是什么?这是最小的,但不是一个。您应该添加(猜测循环5)行,使其成为一个。顺便问一下,为什么不使用
(自动itr=v.begin();itr!=v.end();++itr)
?1.我不会在容器更改后分配迭代器。这可能不是
std::vector
的问题,但在代码更改时,IMHO是一个秘密的错误源。2.后缀增量可能比前缀增量更昂贵。只要不需要后缀(而且很少需要后缀)那么我更喜欢前缀。什么是v?我的glas球坏了,对不起!你至少有支持吗?