模型上面有很多孔,帮我用C++把同坐标XY的孔分组,坐标XY一样的合并一起
时间: 2024-02-12 13:02:37 浏览: 156
好的,如果您的模型上有很多孔,您可以将每个孔的坐标存储在一个二维数组中,然后使用一个哈希表将相同坐标的孔分成一组。以下是一个示例代码:
```c++
#include <iostream>
#include <vector>
#include <unordered_map>
using namespace std;
int main() {
// 模拟坐标数组
vector<vector<int>> points = {{1, 2}, {3, 4}, {1, 2}, {5, 6}, {3, 4}, {7, 8}};
// 哈希表存储相同坐标的孔
unordered_map<string, vector<int>> map;
for (int i = 0; i < points.size(); i++) {
string key = to_string(points[i][0]) + "," + to_string(points[i][1]);
if (map.find(key) != map.end()) {
map[key].push_back(i);
} else {
vector<int> group = {i};
map[key] = group;
}
}
// 输出坐标相同的孔分组结果
for (auto it = map.begin(); it != map.end(); it++) {
cout << it->first << ": ";
for (int i = 0; i < it->second.size(); i++) {
cout << it->second[i] << " ";
}
cout << endl;
}
return 0;
}
```
在这个示例代码中,我们使用了一个二维数组 `points` 来模拟坐标数组,然后使用了一个哈希表 `map` 来存储相同坐标的孔。我们遍历坐标数组中的每个元素,将每个元素的坐标转化为字符串作为哈希表的键,然后将相同键的元素存储在哈希表中。最后,我们输出哈希表中的每组元素,即坐标相同的孔。
阅读全文