高手在c++里怎么去删除指定的数组元素
1个回答
推荐于2017-12-15
展开全部
1、只要将删除后的数据元素像前移动一位即可。
2、例程:
#include <stdio.h>
// 删除长度为len的数组dat中索引为idx的元素。
void remove(int *dat, int *len, int idx)
{
(*len)--;
if (idx < 0 || idx >= *len)
return;
for (int i = idx; i < *len; i++)
dat[i] = dat[i+1];
}
void output(int *dat, int len)
{
for (int i = 0; i < len; i++)
printf("%d ", dat[i]);
printf("\n");
}
int main()
{
int a[10]= {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}, len = 10;
remove(a, &len, 5);
output(a, len);
remove(a, &len, 2);
output(a, len);
return 0;
}
2、例程:
#include <stdio.h>
// 删除长度为len的数组dat中索引为idx的元素。
void remove(int *dat, int *len, int idx)
{
(*len)--;
if (idx < 0 || idx >= *len)
return;
for (int i = idx; i < *len; i++)
dat[i] = dat[i+1];
}
void output(int *dat, int len)
{
for (int i = 0; i < len; i++)
printf("%d ", dat[i]);
printf("\n");
}
int main()
{
int a[10]= {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}, len = 10;
remove(a, &len, 5);
output(a, len);
remove(a, &len, 2);
output(a, len);
return 0;
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询