【问题标题】:C++ Adding Doubles of Elements in VectorsC++ 在向量中添加双元素
【发布时间】: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


【解决方案1】:

当你push_back 一个新的整数到 A 时,它的大小会增加。这意味着您永远不会到达循环的尽头。我建议您将它的初始大小存储在另一个整数中,如下所示:

int myVecSize = A.size();

然后将其与 i 进行比较。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-11-15
    • 2023-03-31
    • 2014-04-18
    • 2017-02-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多