C++在向量中添加元素的双精度

C++ Adding Doubles of Elements in Vectors

本文关键字:元素 双精度 添加 向量 C++      更新时间:2023-10-16

尝试调试此代码,给定一个向量{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 时,其大小会增加。这意味着你永远不会到达循环的尽头。我建议您将它的初始大小存储在另一个整数中,如下所示:

int myVecSize = A.size();

然后将其与 I 进行比较。