设计如下基本几何图形类: 类点CPt(含x,y)、线(CLn);点是线的成员数据,用 vector 容器,在线上实现如下操作: a) 在 pos 位置前加入新点。 b) 删除 pos 位置的点。 c) 修改 pos 点的坐标。 d) 返回点数。 (pos是传入的序号参数)
时间: 2023-06-16 13:02:45 浏览: 202
下面是对应的类的实现代码:
```cpp
#include <iostream>
#include <vector>
using namespace std;
// 点类,含有 x, y 坐标
class CPt {
public:
CPt() : x(0), y(0) {}
CPt(int x, int y) : x(x), y(y) {}
int getX() const { return x; }
int getY() const { return y; }
void setX(int x) { this->x = x; }
void setY(int y) { this->y = y; }
private:
int x;
int y;
};
// 线类,含有点的向量
class CLn {
public:
CLn() {}
int size() const { return pts.size(); }
void insert(int pos, const CPt& pt) { pts.insert(pts.begin() + pos, pt); }
void erase(int pos) { pts.erase(pts.begin() + pos); }
void modify(int pos, const CPt& pt) { pts[pos] = pt; }
private:
vector<CPt> pts;
};
int main() {
CLn ln;
ln.insert(0, CPt(1, 1));
ln.insert(1, CPt(2, 2));
ln.insert(2, CPt(3, 3));
ln.erase(1);
ln.modify(0, CPt(4, 4));
cout << "The number of points: " << ln.size() << endl;
return 0;
}
```
在上面的代码中,我们使用了 STL 中的 vector 容器来存储点。实现了在指定位置插入、删除、修改点的操作。此外,我们还在 main 函数中演示了如何使用这些操作。
阅读全文