用C++实现:m_nTotalNodeNum个节点的函数值分别为m_Pn,求出m_Pn最大时对应的节点坐标x_max和y_max,在m_nTotalNodeNum个节点中选出横坐标与x_max相同的节点,并将该节点的函数值m_Pn返回给一个数组。
时间: 2024-03-12 22:47:14 浏览: 67
C++代码求最大值
5星 · 资源好评率100%
以下是C++代码实现:
```cpp
#include <iostream>
#include <vector>
using namespace std;
struct Node {
int x;
int y;
int pn;
};
vector<int> find_max_pn_nodes(vector<Node> nodes) {
int max_pn = nodes[0].pn;
int x_max = nodes[0].x;
int y_max = nodes[0].y;
// 找到最大的m_Pn及其对应的节点坐标
for (int i = 1; i < nodes.size(); i++) {
if (nodes[i].pn > max_pn) {
max_pn = nodes[i].pn;
x_max = nodes[i].x;
y_max = nodes[i].y;
}
}
vector<int> ans;
// 找到横坐标与x_max相同的节点
for (int i = 0; i < nodes.size(); i++) {
if (nodes[i].x == x_max) {
ans.push_back(nodes[i].pn);
}
}
return ans;
}
int main() {
int n;
cin >> n; // 输入节点个数
vector<Node> nodes(n);
for (int i = 0; i < n; i++) {
cin >> nodes[i].x >> nodes[i].y >> nodes[i].pn;
}
vector<int> ans = find_max_pn_nodes(nodes);
// 输出结果
for (int i = 0; i < ans.size(); i++) {
cout << ans[i] << " ";
}
cout << endl;
return 0;
}
```
这个函数接受一个节点的vector,首先找到m_Pn最大的节点坐标,然后再找到所有横坐标与x_max相同的节点,并将它们的m_Pn放入一个vector中返回。
阅读全文