【发布时间】:2014-10-21 15:55:41
【问题描述】:
任何人都可以建议我,如何在 C++ 中清除 2D 矢量。 我必须编写需要在 Matrix 、 Process 和 Clear Matrix 中读取的程序,并为下一次读取操作做好准备。我已经创建了带有矢量的二维数组> 我正在填充但未能重置。下面是代码供参考。
#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;
#define MAX 501
typedef std::vector<std::vector<int>> vec2d;
vec2d matrix(MAX , std::vector<int>(MAX, 0));
void main()
{
int tc;
int N;
for(tc =0 ; tc < 20;tc++)
{
int temp;
scanf("%d",&N);
int result =0;
for(int i = 0; i < N;i++)
{
for(int j=0; j<N;j++)
{
scanf("%d",&temp);
matrix[i][j]=temp;
}
}
// Do Some processing with 2D vectory Array
matrix.clear(); // Now I want to clear 2D vector but only vector contents, and get ready for new input reading
// How do I do it with 2d Vector ?
cout << result << endl;
}
}
【问题讨论】:
-
如果覆盖,则无需先将值重置为
0。 -
我需要问一下。如果您只是要重新分配值,为什么还要将它们重置为 0?
-
这是必需的,因为矩阵不会完全填充,而是部分填充。因此,在处理时需要空值作为 0 或其他一些负值。虽然在上面的代码中,我正在对整个数组进行 scanf。