设计基本图形类
类点CPt、 线(CLn);点是线的成员数据,用 vector 容器,在线上实现如下操作:
(1)在 p 位置前加入新点。
(2)删除 p 位置的点。
(3)修改 p 点的坐标。
(3)返回点数。
(p是传入的序号参数)
c++ 使用vector的问题
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
1条回答 默认 最新
- 白色一大坨 2020-04-13 22:36关注
随便写了写,大概这个意思吧,你自己调一下看看
#include<iostream> #include<vector> using namespace std; class CPt { public: int x; int y; }; class CLn { vector<CPt> pvec; public: bool InsertP(int p, CPt inp) { if (p>= pvec.size() && pvec.size() > 0) return false; if (pvec.size() == 0) { pvec.push_back(inp); } else { vector<CPt>::iterator ite; int i=0; for(ite=pvec.begin();ite!=pvec.end();++ite) { if(p == i) { pvec.insert(ite,inp); break; } i++; } } } bool DeleteP(int p) { if (p>= pvec.size()) return false; vector<CPt>::iterator ite; int i=0; for(ite=pvec.begin();ite!=pvec.end();) { if(i==p) ite=pvec.erase(ite); else ++ite; i++; } } bool ModifyP(int p, CPt inp) { if (p>= pvec.size()) return false; pvec[p] = inp; return true; } int GetCount() { return pvec.size(); } }; int main() { CLn Line; CPt p1,p2,p3; cout<<"插入三个点"<<endl; p1.x = 1; p1.y = 2; Line.InsertP(0, p1); p2.x = 2; p2.y = 4; Line.InsertP(0, p2); p3.x = 3; p3.y = 6; Line.InsertP(0, p3); cout<<"当前点数量"<< Line.GetCount() <<endl; Line.DeleteP(1); cout<<"删除一个点后数量"<< Line.GetCount() <<endl; p1.x = 10; p1.y = 20; Line.ModifyP(0, p1); return 0; }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥15 matlab生成电测深三层曲线模型代码
- ¥50 随机森林与房贷信用风险模型
- ¥50 buildozer打包kivy app失败
- ¥30 在vs2022里运行python代码
- ¥15 不同尺寸货物如何寻找合适的包装箱型谱
- ¥15 求解 yolo算法问题
- ¥15 虚拟机打包apk出现错误
- ¥15 用visual studi code完成html页面
- ¥15 聚类分析或者python进行数据分析
- ¥15 三菱伺服电机按启动按钮有使能但不动作