【转】对多维向量vector进行操作

 参考如下:

https://www.cnblogs.com/zsq1993/p/5929673.html

目标网址中的程序无法运行,修改后可以执行。

执行步骤:

1.输入命令 gcc test.cpp ,提示错误:

undefined reference to 'std::cout'

2.改为输入 g++ test.cpp       也可以写成g++ test.cpp -o joyce,这样生成的目标文件就不是a.out   ,而是joyce

3.执行  ./a.out,即可在terminal中看到结果

 

//用vector来代替数组
//          潘李亮2002-1-13

//在GNU c++ Mandrake Linux7.0下通过,
//在VC下会有变量定义问题,大家自己解决
//修改:王磊  2019年04月14日08:04:38
  #include <iostream>
  #include <vector>
  using namespace std;
  int main()
  {
      vector< vector<int> > array(3);
      for(int i=0;i<3;i++)
        array[i].resize(3);//设置数组的大小3X3
         //现在你可以和使用数组一样使用这个vector
      for(int i=0;i<3;i++)
        for(int j=0;j<3;j++)
          array[i][j]=(i*j);
      //输出
      for(int i=0;i<3;i++)
      {
         for(int j=0;j<3;j++)
           cout<<array[i][j]<<" ";
         cout<<endl;
       }


     cout<<endl<<endl;
     array.resize(5);
     array[3].resize(3);
     array[4].resize(3);
      //现在是5X3的数组了
      for(int i=0;i<5;i++)
         for(int j=0;j<3;j++)
            array[i][j]=(i*j);
      for(int i=0;i<5;i++)
      {
         for(int j=0;j<3;j++)
            cout<<array[i][j]<<" ";
        cout<<endl;
      }



//----------------------------------------------------------------------------
//新的程序
typedef vector<int> vec_int;		//定义一个新的类型 vec_int
vector<vec_int> mtr_int;		// 声明一个2-d "array" - matrix

int N(10),M(10);  // the number of dimension.
int nDefault;  		// default value for all elements in the matrix,矩阵中所有元素的默认值
// if you want to get a N*M matrix,如果你想得到一个N*M的矩阵
vec_int vec_tmp;  		// temporary 1-dimension "array",先创建一个1-dimension "array"
for(int i = 0; i < N; ++i)
{
  vec_tmp.assign(M, nDefault);		//分配一个M维的向量,且没有初始化
  mtr_int.push_back(vec_tmp);		//把M维的向量在最后插入到vec_tmp中
}

// now you can access the matrix with operator "[]"
// like generay 2-dimension array
// for example

mtr_int[2][3] = 100;
cout<<mtr_int[2][3]<<" ";
cout<<endl;



  }

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值