使用vector出现的错误 subscript out of range

不想拥有名字 2018-05-25 08:43:53
double ClosestPoints(vector<Point> S, int n)
{
ji = 0;cert = 0;

if (n<2)
return 99999.0;
int i, j, a = 0, b = 0, c = 0;
int p = 0, q = 0;
double dmin, d1, d2, d, r[25], m;
int ij[2][10];

Point temp;
vector <Point> S1, S2, P1, P2;

for (i = 0;i<n - 1;i++)
{
//cout << "测试3" <<S.max_size ()<< endl;
for (j = n - 1;j >= i;j--)
{
cout << i<< " "<<j<<"测试" << endl;
if (S[j].x < S[j-1].x)
{
//cout << S[j].x << " " << S[j - 1].x << endl;
temp = S.at(j);
S[j] = S[j - 1];
S[j - 1] = temp;
//cout << S[j].x << " " << S[j - 1].x << endl;
}
}

}
cout << "测试2" << endl;
}
测试后发现程序运行在循环出停止出现错误 subscript out of range i循环只能执行第一层
...全文
1608 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
YGLeeeon 2018-05-25
  • 打赏
  • 举报
回复
下标访问必要要保证该位置有元素
真相重于对错 2018-05-25
  • 打赏
  • 举报
回复
除非一开始vector确定好容量,否则要用push_back添加对象,不能用vector[] 来操作

64,632

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧