c++ - 我要求用户输入大小和数组,但是在打印 vector 时,它仅将 '0'显示为输出

标签 c++ vector while-loop

我声明了一个 vector ,并试图放入大小和值并打印出来

#include<iostream>
#include<vector>
using namespace std;
int main()
{
    int s;          
    cin>>s;                   //taking size of vector
    vector <int> arr(s);
    int input;
    while (cin >> input)
       {arr.push_back(input);}     //inserting the values in array
    for(int i=0;i<s;i++)
        cout<<" "<<arr[i];         //printing the values
}
我的输入
5
1 2 3 4 5
预期产量
1 2 3 4 5
电流输出
0 0 0 0 0

最佳答案

这行:

vector <int> arr(s);
使arr的大小为s。它将具有已默认初始化为0的s元素。然后您在此 vector 上执行push_back,这会将其他元素添加到 vector 中。
当您打印出第一个s元素时,您看不到从cin读取的值,而是看到在s声明中创建的初始值的arr数目。
要解决此问题,要么在声明arr时不提供大小,要么在循环中仅使用arr[i] = input;而不是push_back()

关于c++ - 我要求用户输入大小和数组,但是在打印 vector 时,它仅将 '0'显示为输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62561729/

相关文章:

c++ - QFile::copy() 的进度条?

c++ - OpenMP 使用矩阵乘法任务

java - 如何打印 Vector[] 的所有值

java - 是否可以返回 Java 中通用 vector 中元素的副本而不是对其的引用?

java - 如何停止 JShell/Kulla 中的无限循环?

c++ - 旋转,通过头文件在opengl中翻译?

c++ - _ctermid.h : No such file or directory error on mac without Xcode

vector - 是否可以将集合扩展为函数的多个参数

java - 获取两个变量的百分比

c - while循环变量更新