已知class ControlArc { public: std::string taskId; std::string satelliteName; std::string satelliteId; std::string startTime; std::string endTime; };std::vector<std::vector<ControlArc>> ControlArcList ,检查每个std::vector<ControlArc> 中每个ControlArc 中的std::string startTime且 std::string endTime;均不重复
时间: 2023-08-15 22:19:18 浏览: 139
18_闲聊几句AUTOSAR_OS(四).pdf
你可以使用一个哈希表来记录已经出现过的时间段,对于每个 std::vector<ControlArc> 中的 ControlArc,检查它的 startTime 和 endTime 是否在哈希表中已经出现过,如果已经出现过则说明时间段重复,否则将这个时间段加入哈希表中。具体实现可以参考下面的代码:
```cpp
#include <unordered_set>
bool checkControlArcList(const std::vector<std::vector<ControlArc>>& ControlArcList) {
std::unordered_set<std::string> timeSet;
for (const auto& vec : ControlArcList) {
for (const auto& arc : vec) {
if (timeSet.count(arc.startTime) || timeSet.count(arc.endTime)) {
return false; // 时间段重复,返回 false
}
timeSet.insert(arc.startTime);
timeSet.insert(arc.endTime);
}
}
return true; // 时间段不重复,返回 true
}
```
其中 `std::unordered_set` 是 C++11 引入的一个哈希表实现,用于快速查找元素是否存在。
阅读全文