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也没有给我错误它是一个视觉工作室的错误吗?
答案 0 :(得分:1)
apply
在for
循环体的范围内,所以请放心,错误不存在。但是你知道在循环体之后apply
超出范围吗?
我只是因为你使用
而回答这个问题vector2.size() - 1
如果vector2
为空, 会给你地狱,因为上面的内容将包含一个很大的unsigned
值,你的程序将会失败!使用
for (int apply=0; apply + 1 < vector2.size(); apply++) {
代替。