为什么我的代码提供了未声明的变量错误?

时间:2018-06-13 11:27:40

标签: c++

   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;
    }

}

错误C2065'apply':未声明的标识符。为什么发生此错误,因为我已经在for循环中定义了apply变量。错误应该在初始化最大(向量)。为什么错误的编译器代码? 甚至intellisense也没有给我错误它是一个视觉工作室的错误吗?

1 个答案:

答案 0 :(得分:1)

applyfor循环体的范围内,所以请放心,错误不存在。但是你知道在循环体之后apply超出范围吗?

我只是因为你使用

而回答这个问题
vector2.size() - 1
如果vector2为空,

会给你地狱,因为上面的内容将包含一个很大的unsigned值,你的程序将会失败!使用

for (int apply=0; apply + 1 < vector2.size(); apply++) {

代替。