c++ 有3个泊位,每个泊位能停3辆车,如何设计数据结构来记录每个泊位停车情况
时间: 2024-09-20 11:16:25 浏览: 37
要设计一个数据结构来记录每个停车位的停车情况,你可以考虑使用一个数组或者向量(vector)来表示三个泊位,每个元素代表一个泊位,而该元素的状态(0, 1, 或者 2)则对应空闲、已停车和满三种状态。C++中可以用枚举类型或整数值来表示这些状态。
下面是使用整数表示的一种简单方法:
```cpp
enum class ParkingStatus { EMPTY = 0, OCCUPIED = 1, FULL = 2 };
struct ParkingSpot {
ParkingStatus status;
};
class ParkingLot {
private:
std::array<ParkingSpot, 3> spots; // 三个泊位
public:
bool isAvailable() const {
for (const auto& spot : spots) {
if (spot.status == ParkingStatus::EMPTY) {
return true;
}
}
return false;
}
void park(Vehicle vehicle) {
for (int i = 0; i < 3 && spots[i].status == ParkingStatus::FULL; ++i) {}
if (spots.empty()) {
throw std::runtime_error("No parking spots available.");
}
spots[i] = {ParkingStatus::OCCUPIED}; // 停车
}
void leave(int spotIndex) {
spots[spotIndex] = {ParkingStatus::EMPTY}; // 离开
}
};
```
在这个例子中,`ParkingSpot` 结构体有一个 `ParkingStatus` 字段,`ParkingLot` 类包含一个泊车位数组,以及用于查询是否有空位、停车和车辆离开的方法。
阅读全文