读书人

下面这段代码为什么通不过解决办法

发布时间: 2012-02-21 16:26:23 作者: rapoo

下面这段代码为什么通不过
#include <iostream>
#include <vector>
using namespace std;
//用vector 代替二维数组
void main()
{
int i,j;
vector <vector <int> > array(3);

for(i=0; i <3; i++)
array[i].resize(3);
//set
for(i=0; i <3; i++)
for(j=0; j <3; j++)
array[i][j]=i+j;
//print
for(i=0; i <3; i++)
for(j=0; j <3; j++)
cout < <array[i][j] < < " ";

//重设个5*3数组
array.resize(5);
array[3].resize(3);
array[4].resize(3);
//set
for(i=0; i <5; i++)
for(j=0; j <3; j++)
array[i][j]=i+j;
//print
for(i=0; i <5; i++)
for(j=0; j <3; j++)
cout < <array[i][j] < < " ";
}

[解决办法]
因为根据C/C++的贪婪原则 > > 是位移/流 运算符,不是2个 > 尖括号
下一版C++标准会要求编译器有这个正确判断力。VC2005已经实现这个功能。

读书人网 >C++

热点推荐