关于vector<vector<int>>的使用
vector<vector<int>> A;//错误的定义方式
vector<vector<int> > A; //正确的定义方式,有空格
vector< m,vector<int>(n,k));m:行数,n:列数,k:初值
代码
# include<vector>
# include <iostream>
# include<iterator>
using namespace std;
int main()
{
int m , n , k;
cin >> m >> n >> k;
vector<vector<int> > vec(m, vector<int>(n,k)); //m行,n列,值均为k的矩阵
for (int i = 0; i < vec.size(); ++i) //打印二维矩阵
{
copy(vec[i].begin(), vec[i].end(), ostream_iterator<int>(cout, "\t"));
cout << endl;
}
}
运行结果
代码
# include<vector>
# include <iostream>
# include<iterator>
using namespace std;
class myvec
{
vector<vector<int> >array; //二维数组
public:
myvec(int row, int col) : array(row, vector<int>(col, 0)) {} //二维数组初始化,元素值都为0
~myvec();
int set();
};
int myvec::set() //设置二维数组的值
{
int k = 1;
for (int i = 0; i < array.size(); ++i)
{
for (int j = 0; j < array[0].size(); ++j)
array[i][j] = k++ ;
}
return 0;
}
myvec::~myvec() //析构函数打印出矩阵
{
for (int i = 0; i < array.size(); ++i)
{
copy(array[i].begin(),array[i].end(),ostream_iterator<int>(cout,"\t"));
cout << endl;
}
}
int main()
{
myvec x(10,10);
x.set();
}
运行结果