c++中利用vector创建并输入一维数组
一维数组:
vector<int> a;
int b[5] = {1,2,3,4,5};
a.push_back(b);
c++中利用vector创建并输入二维数组时不能利用传统的输入方法cin>>要利用到vector创建一维数组并将其插入二维数组内。代码如下:
# int b[3][3] = { { 1,1,1 },{ 1,0,1 },{ 1,1,1 } };
vector<vector<int>> a(3, vector<int>(3));
int i, j;
for (i = 0; i < 3; i++)
{
for (j = 0; j < 3; j++)
{
a[i][j] = b[i][j];
}
cout << endl;
}
setZeroes(a);
//while (1);
cout << "输出矩阵: " << endl;
for (int i = 0; i <3; i++)
{
for (int j = 0; j < 3; j++)
{
cout << a[i][j];
}
cout << endl;
}
方法 2
#include<iostream>
#include<vector>
using namespace std;
void main()
{
int r = 0, c = 0;
cout << "Enter r: ";//规定二维数组行数
cin >> r;
cout << "Enter c: ";//规定二维数组列数
cin >> c;
vector<vector<int>>array;//定义二维数组
vector<int>v;//定义一维数组
array.clear();//将二维数组清空,或初始化(初始化代码很简单,不会可以百度)//也可不用这一步
int temp=0;
for (int i = 0; i < r; i++)//输入r*c的二维数组
{
v.clear();//子数组返回时要清除
for (int j = 0; j < c; j++)
{
cin >> temp;
v.push_back(temp);
}
array.push_back(v);
}
for (int i = 0; i < r; i++)//打印输入的二维数组
{
for (int j = 0; j < c; j++)
{
cout << array[i][j] << " ";
}
printf("\n");
}
while (1);
}
或者
int rows, cols;
//cin >> rows;
//cin >> cols;
while (cin >> rows >> cols)
{
vector<vector<int>> array;
vector<int>v;
int temp;
for (int i = 0; i < rows; i++)
{
//v.clear();
vector<int>v;
for (int j = 0; j < cols; j++)
{
cin >> temp;
v.push_back(temp);
}
array.push_back(v);
}
cout << "输入矩阵: " << endl;
for (int i = 0; i < rows; i++)
{
for (int j = 0; j < cols; j++)
{
cout << array[i][j];
}
cout << endl;
}
setZeroes(array);
//while (1);
cout << "输出矩阵: " << endl;
for (int i = 0; i < rows; i++)
{
for (int j = 0; j < cols; j++)
{
cout << array[i][j];
}
cout << endl;
}
}