要删除一个包含特定x和y值的"Point"对象,您可以使用STL中的remove_if函数。首先,您需要定义一个谓词函数,该函数接受一个"Point"对象作为参数,并检查其x和y值是否与给定值匹配。然后,您可以使用remove_if函数删除满足谓词条件的元素。
以下是一个示例代码:
#include<iostream>
#include <list>
#include<algorithm>
struct Point {
int x;
int y;
};
bool isPointEqual(const Point& p, int x, int y) {
return p.x == x && p.y == y;
}
int main() {
std::list<Point> points = {{1, 2}, {3, 4}, {5, 6}, {7, 8}};
int xToRemove = 3;
int yToRemove = 4;
points.remove_if([&](const Point& p) { return isPointEqual(p, xToRemove, yToRemove); });
for (const auto& p : points) {
std::cout << "(" << p.x << ", " << p.y << ")"<< std::endl;
}
return 0;
}
在这个示例中,我们首先定义了一个名为"Point"的结构体,其中包含x和y值。然后,我们定义了一个名为"isPointEqual"的谓词函数,该函数接受一个"Point"对象和两个整数作为参数,并检查"Point"对象的x和y值是否与给定值匹配。
接下来,我们创建了一个包含多个"Point"对象的STL列表,并指定了要删除的x和y值。我们使用remove_if函数删除满足谓词条件的元素,并将结果输出到控制台。
请注意,这个示例仅适用于C++编程语言。如果您使用的是其他编程语言,您需要使用相应的库和语法来实现相同的功能。
领取专属 10元无门槛券
手把手带您无忧上云