有没有人可以给我建议一下,如何在C++中清除2D向量。我必须写程序,我需要读在矩阵,过程和清除矩阵,并准备下一个读取操作。我已经创建了2D数组与矢量>我正在填充,但无法重置。下面是参考代码。
#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;
}
}
3条答案
按热度按时间sshcrbum1#
下面是C++11中的两种方法:
或
你也可以像这样使用一个常规的for循环:
tjjdgumg2#
另一个替代方案是:
为了避免每次分配,您可以缓存该值:
每次你想重置矩阵时:
bkhjykvo3#
很抱歉,在这里迟到了,实际上我在2014年不知道编码。我已经得到了一个结果,希望你可以用memset试试。