vector<vector<double>> point,C++ point中为3个3维坐标点,判断point的可行性
时间: 2024-10-17 22:14:47 浏览: 35
在C++中,`vector<vector<double>>` 是一个二维动态数组,用于存储三维坐标点,每个内部的 `vector<double>` 表示一个三维空间中的点,通常由三个浮点数(double类型)表示 x、y 和 z 轴的值。
如果我们要判断一个名为 `point` 的这种数据结构是否合理,我们通常会检查以下几个方面:
1. 确保每个元素都是包含三个 `double` 的向量:即 `point[i].size()` 应该等于 3,其中 `i` 是索引从0开始到 `point.size() - 1`。
2. 每个三维点的有效性:检查每个向量(点)的元素值,比如它们是否在实际物理空间内,如 `-inf` 到 `+inf` 之间。
例如,我们可以编写一个简单的函数来验证这个:
```cpp
bool isValidPoint(const vector<vector<double>>& point) {
for (const auto& subVec : point) {
if (subVec.size() != 3 || any_of(subVec.begin(), subVec.end(), [](double val) { return std::isnan(val); })) {
return false;
}
}
return true;
}
```
这个函数遍历每个子向量,检查它是否有三个元素,并且没有任何值是 `NaN`(不是数字)。如果不是这样,函数返回 `false`,表示 `point` 不可行;否则返回 `true`,表明 `point` 是有效的三维坐标集合。
阅读全文