保持元素在动态数组中

时间:2017-01-15 21:47:46

标签: c++

如何将我的整数保持在动态数组中?首先,我需要让用户输入数组中的数字,然后将所有数字存储在那里。

int n;
cout << "Enter the number of integers: ";
cin >> n;
int input;
int* array;
for(int i = 0; i < n; i++){
    cout << "Enter your integer:" << endl;
    cin >> input;
    array = new int[input];
}
for(int i = 0; i < n; i++){
    cout << array[i] << endl;
}

最后它只显示了一些垃圾值。怎么了?

3 个答案:

答案 0 :(得分:1)

你似乎误解了(动态)数组中$('.posting-card').hover(function () { // Grab the pricing tier denoted by data attribute. var tier = $(this).data('tier'); // Add class, active, to the card, I'm hovering over, and remove class active from any other cards. $(this).addClass('active').siblings().removeClass('active'); // Find feature cards that have a matching data attribute and add a class, active, to that as well. $('.posting-price-feature[data-tier=' + tier + ']').addClass('active'); // Find all other feature cards that have a data attribute value of less than what I'm hovering over now, // If it has a lesser price tier add class, active, to that feature card. }, function () { $(this).removeClass('active'), $('.posting-price-feature').removeClass('active'); }); 的含义;您正在使用 new好像这会将新插槽附加到数组并将值设置为array = new int[input];

执行两个步骤:

首先,只要知道数组应保留多少项,就为它保留内存(例如像input)。

然后,对于输入的每个值,将其分配到数组中的正确位置(例如array = new int[amountOfValues];确保array[i] = someValue小于i。)

答案 1 :(得分:0)

我至少看到了三种方法。第一个是以下

 dir /b | findstr /E /R "\\BW RRI - [0-9]\.[0-9]\PAYMENT CONFIRMATION.pdf$"

第二个是以下

int n;
cout << "Enter the number of integers: ";
cin >> n;
int input;

int* array = new int[n];

for(int i = 0; i < n; i++){
    cout << "Enter your integer:" << endl;
    cin >> input;
    array[i] = input; 
}

for(int i = 0; i < n; i++){
    cout << array[i] << endl;
}

// ...

delete [] array;

第三个是以下

#include <memory>

//...

int n;
cout << "Enter the number of integers: ";
cin >> n;
int input;

std::unique_ptr<int[]> array( new int[n] );

for(int i = 0; i < n; i++){
    cout << "Enter your integer:" << endl;
    cin >> input;
    array[i] = input; 
}

for(int i = 0; i < n; i++){
    cout << array[i] << endl;
}

答案 2 :(得分:0)

您的问题只是您试图将您的数字值放入数组的大小,而不是将它们存储在其中。

同样在每次迭代中,您使用输入值array = new int[input];

初始化数组

因此它将根据您的输入值从每次迭代中保留内存大小,当您打印数组值时,结果将是内存中的垃圾值,因为您没有在数组中存储任何值。

你的程序应该像:

 int n;
 cout << "Enter the number of integers: ";
 cin >> n;
 int input;
 int* array;
 array = new int[n];
 for(int i = 0; i < n; i++){
        cout << "Enter your integer:" << endl;
        cin >> input; 
        array[i] = input;   
 }