c语言删除一维数组相同的数,c++向量删除元素
文章0背景1删除多维数组1.1方法1:遍历空1.2方法2:填充1.3方法3: memset 1.4测试代码2删除多维向量
在后台0之前,经常操作一维数组或向量,但实际项目中有多维数组或向量,需要初始化清空操作。在网上查阅了一些资料,结合自己的实践,终于实现了清空操作。
1删除多维数组以三维数组为例:双A[30][4][100];
空操作:
1.1方法1:遍历并清除for(int I=0;i 30i ){
for(int j=0;j 4;j ){
for(int k=1;k 100k ){
a[I][j][k]=0.0;
}
}
}
1.2方法2:填充头文件:#include算法
std:fill(A[0][0],A[0][0] 30*4*100,0.0);
1.3方法3: memset头文件:#include字符串
memset(A,0,sizeof(A));推荐,因为效率高,但是有些类型不能用,比如string类型string。
1.4测试代码双A[30][4][100];
for(int I=0;i 30i ){
for(int j=0;j 4;j ){
for(int k=1;k 100k ){
a[I][j][k]=0.9;
}
}
}
//空的
//for(int I=0;i i ){
//for(int j=0;j j ){
//for(int k=1;k 100k ){
//A[I][j][k]=0.0;
//}
//}
//}
//memset(A,0,sizeof(A));
std:fill(A[0][0],A[0][0] 30*4*100,0.0);
//打印
for(int I=0;i 30i ){
for(int j=0;j 4;j ){
for(int k=1;k 100k ){
printf(%f\n ,A[I][j][k]);
}
}
}
2删除多维向量以二维向量为例:std: vector std: pair int,int a[10][100];
for(int I=0;i 10i ){
for(int j=0;j 100j ){
for(std:vector std:pair int,int :iterator k=A[i][j]。begin();k!=A[i][j]。end();){
k=A[i][j]。擦除(k);
}
}
}测试代码:
std:vector std:pair int,int A[10][100];
for(int I=0;i 100i ){
std:pair int,int b;
b . first=1;
b .秒=1;
一个[0][我]。push _ back(b);
一个[0][我]。push _ back(b);
}
for(int I=0;i 100i ){
std:pair int,int b;
b . first=2;
b .秒=2;
A[1][i]。push _ back(b);
A[1][i]。push _ back(b);
A[1][i]。push _ back(b);
A[1][i]。push _ back(b);
}
//清除输出前的位数
for(int I=0;i 10i ){
for(int j=0;j 100j ){
$ I之前的STD:cout # # #: I j: j - a[I][j]。size()“”;
}
STD:cout STD:endl;
}
for(int I=0;i 10i ){
for(int j=0;j 100j ){
for(std:vector std:pair int,int :iterator k=A[i][j]。begin();k!=A[i][j]。end();){
k=A[i][j]。擦除(k);
}
}
}
//测试空位置。
for(int I=0;i 10i ){
for(int j=0;j 100j ){
Std:cout @@@在-I: I J: J-A [I] [J]之后。size()“”;
}
STD:cout STD:endl;
}
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。