在C++中删除多个结构中的元素可以通过以下步骤实现:
new
和delete
关键字或者malloc
和free
函数来分配和释放内存。以下是一个示例代码,演示如何在C++中删除多个结构中的元素:
#include <iostream>
struct Person {
std::string name;
int age;
};
int main() {
const int size = 5;
Person* people = new Person[size];
// 初始化结构数组
people[0] = {"Alice", 25};
people[1] = {"Bob", 30};
people[2] = {"Charlie", 35};
people[3] = {"David", 40};
people[4] = {"Eve", 45};
// 删除年龄大于等于40的人
int newSize = size;
for (int i = 0; i < newSize; i++) {
if (people[i].age >= 40) {
// 后面的元素向前移动
for (int j = i; j < newSize - 1; j++) {
people[j] = people[j + 1];
}
newSize--; // 更新数组大小
i--; // 继续检查当前位置的元素
}
}
// 输出删除后的结果
for (int i = 0; i < newSize; i++) {
std::cout << "Name: " << people[i].name << ", Age: " << people[i].age << std::endl;
}
// 释放内存
delete[] people;
return 0;
}
这个示例代码演示了如何删除年龄大于等于40的人的结构元素。在实际应用中,你可以根据具体的需求和条件来修改删除的逻辑。
领取专属 10元无门槛券
手把手带您无忧上云