参考如下:
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;
}