设计基本图形类
类点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 乌班图ip地址配置及远程SSH
- ¥15 怎么让点阵屏显示静态爱心,用keiluVision5写出让点阵屏显示静态爱心的代码,越快越好
- ¥15 PSPICE制作一个加法器
- ¥15 javaweb项目无法正常跳转
- ¥15 VMBox虚拟机无法访问
- ¥15 skd显示找不到头文件
- ¥15 机器视觉中图片中长度与真实长度的关系
- ¥15 fastreport table 怎么只让每页的最下面和最顶部有横线
- ¥15 R语言卸载之后无法重装,显示电脑存在下载某些较大二进制文件行为,怎么办
- ¥15 java 的protected权限 ,问题在注释里