首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

求解关于vector<vector<> >有关问题

2012-02-21 
求解关于vectorvector 问题?#includestdio.h#includestring.h#includevectorusingnamespacestd

求解关于vector<vector<> >问题?
#include       <stdio.h>    
#include   <string.h>  
#include   <vector>
using   namespace   std;

main()
{      
int       n,i,j,k;       //i,j,k为计数器,n为方格的行数或是列数

printf( "Input: ");scanf       ( "%d ",&n);    
vector <vector <int>   > p(n,vector <int> (n));
  for   (i=0;i <n;++i)
  {
  for   (j=0;j <n;++j)
  {
  p[i][j]=0;
  }
  }

do{      
printf( "> ");scanf( "%d       %d       %d ",&i,&j,&k);      
p[i][j]=k;      
}       while(i!=0       ||       j!=0       ||       k!=0);


  for   (i=0;i <n;i++)
    {
    for   (j=0;j <n;++j)
    {
    printf( "%3d ",pa[i][j]);
    }
    printf( "\n ");
    }
}

当我输入:
5
2   2   8
0   0   4
0   0   0


结果为什么输出时p[2][2]由0变为8,而p[0][0]却还是0啊?
还有就是有没有简洁的方法来初始化p啊?
小弟先谢各位大哥啦

[解决办法]
根据你的赋值过程,应该是这样的:p[2][2]=8;p[0][0]=4;p[0][0]=0;
这时候,P[2][2]当然是8,p[0][0]也自然是0了。
简单一些的方法就要多查查vector的成员函数了,比如assign,operator = 都可以了,
还可以使用泛型算法。

热点排行