C++ 为什么我的代码给出了未声明的变量错误?

C++ 为什么我的代码给出了未声明的变量错误?,c++,C++,错误C2065“应用”:未声明的标识符。由于我已在for循环中定义了应用变量,因此发生此错误的原因。初始化biggestvector时应出错。为什么编译器代码错误? 即使intellisense也没有给我错误,这是visual studio错误吗?应用程序在for循环体的范围内,所以请确保,错误不在那里。但是您知道在循环体之后apply超出了范围吗 我回答这个问题只是因为你使用了 include "stdafx.h" #include <vector> #include <

错误C2065“应用”:未声明的标识符。由于我已在for循环中定义了应用变量,因此发生此错误的原因。初始化biggestvector时应出错。为什么编译器代码错误? 即使intellisense也没有给我错误,这是visual studio错误吗?

应用程序在for循环体的范围内,所以请确保,错误不在那里。但是您知道在循环体之后apply超出了范围吗

我回答这个问题只是因为你使用了

   include "stdafx.h"
#include <vector>
#include <iostream>



    std::vector<int> biggest;

std::vector<int>vector1;
std::vector<int>vector2;


int main(){
biggest = [vector2[0],0]; //wrong initialization
for (int apply = 0; apply < (vector2.size()); apply++) {
    if (biggest[0] < vector2[apply + 1]) {
        biggest[0] = vector2[apply + 1];
        biggest[1] = apply + 1;
    }

}
如果vector2为空,则会给您带来灾难,因为上面的内容将环绕到一个大的无符号值,并且您的程序将异常失败!使用

vector2.size() - 1

相反。

My crystal ball说您在该循环之后使用了apply。在for循环中,尝试使用++应用而不是apply++@KorbenDose这里两者没有区别。@Karansharma post a因为上面的代码没有重现错误。@interjay您是对的,这里没有区别。可能仍然是一个。我已经更改了它,但仍然是一个错误。让我看看是否可以上传it@karanshaarma:不,不要上载快照,上载显示错误的代码的精简版本。抱歉,伙计们,我找到了解决方案,我以错误的方式初始化了最大的数组,但不知道为什么会出现这种错误。
for (int apply=0; apply + 1 < vector2.size(); apply++) {