谁能建议我,我该如何清除C ++中的2D向量。我必须编写需要在Matrix,Process和Clear Matrix中读取的程序,并为下一次读取操作做好准备。我已经创建了2D数组,其中包含vector>我正在填充,但无法重置。以下是供参考的代码。
#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;
}
}
另一种选择是:
matrix = vec2d(MAX , std::vector<int>(MAX, 0));
为了避免每次分配,您可以缓存该值:
static const vec2d matrix_zero = vec2d(MAX , std::vector<int>(MAX, 0));
每次您要重置矩阵时:
matrix = matrix_zero;
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句