【发布时间】:2017-10-23 21:18:43
【问题描述】:
尝试调试此代码,给定向量 {1,2},它应该打印出 {1,2,2,4}。但是,我得到了一个无限循环。
代码如下:
#include <iostream>
#include <vector>
using namespace std;
void Add_Doubles(vector<int> & A){
for (int i=0; i< A.size(); i++)
A.push_back(2*A[i]);
}
void print (const vector<int> & A){
for (int i=0; i<A.size(); i++)
cout << A[i] <<" ";
cout << endl;
}
int main(){
vector<int> A;
A.push_back(1);
A.push_back(2);
Add_Doubles(A);
print(A);
Add_Doubles(A);
print(A);
return 0;
}
我觉得这是 for 循环没有退出,但它可能是别的东西。任何指针都会有所帮助!
【问题讨论】:
-
提示:当你
push_back一个元素时,A.size()会发生什么?你的循环什么时候停止? -
Add_Doubles应该做什么?
标签: c++ arrays loops for-loop vector