不可以这样使用吗??
为什么编译通不过呀!
#include <iostream>
#include <vector>
using namespace std;
int main(){
vector<int> ivec(10,1);
if( !ivec.empty() ){
vector<int>::reference rval = *ivec.begin();
vector<int>::reference rval2 = ivec.front();
vector<int>::reference rval3 = ivec[0];
}
cout << " rval: " << rval << endl;
cout << "rval2: " << rval2 << endl;
cout << "rval3: " << rval3 << endl;
system("pause");
return 0;
}
错误:13 rval' undeclared (first use this function)
14 rval2' undeclared (first use this function)
15 rval3' undeclared (first use this function)
这是什么原因????????????
[解决办法]
if( !ivec.empty() ){
vector<int>::reference rval = *ivec.begin();
vector<int>::reference rval2 = ivec.front();
vector<int>::reference rval3 = ivec[0];
}
cout << " rval: " << rval << endl;
cout << "rval2: " << rval2 << endl;
cout << "rval3: " << rval3 << endl;
rval,rval2,rval3的生命在 if的 {}里面已经结束.
在作用域外面,没有 rval等几个的声明定义.
[解决办法]
你把这三句放到if语句里,不就可以了吗,局部变量的问题
cout << " rval: " << rval << endl;
cout << "rval2: " << rval2 << endl;
cout << "rval3: " << rval3 << endl;