C++ 当可能输入的最大值为1000时,如何将数组大小限制为仅输入多少个值? #包括 使用名称空间std; void displayListValues(int数组[],int Max) { int计数器=0; 对于(int i=0;i

C++ 当可能输入的最大值为1000时,如何将数组大小限制为仅输入多少个值? #包括 使用名称空间std; void displayListValues(int数组[],int Max) { int计数器=0; 对于(int i=0;i,c++,arrays,function,C++,Arrays,Function,简而言之,答案是不能。C/C++数组一旦定义,大小是固定的 答案很长,你需要使用数组以外的东西。你应该使用std::vector,它的行为类似于数组,但可以调整大小。问题在哪里?!问题在哪里?!问题在哪里?!标题中:当输入的值达到最大值时,我如何将数组的大小限制为输入的值的大小r是1000?@Nico,这很不清楚;你的语法很糟糕;试着换一种说法;只是想弄清楚,副词不是形容词,或者你打算如何使用它。为什么不使用std::vector而不是数组呢?你的努力和关注不到10000字节(1000整数)看起

简而言之,答案是不能。C/C++数组一旦定义,大小是固定的


答案很长,你需要使用数组以外的东西。你应该使用
std::vector
,它的行为类似于数组,但可以调整大小。

问题在哪里?!问题在哪里?!问题在哪里?!标题中:当输入的值达到最大值时,我如何将数组的大小限制为输入的值的大小r是1000?@Nico,这很不清楚;你的语法很糟糕;试着换一种说法;只是想弄清楚,副词不是形容词,或者你打算如何使用它。为什么不使用
std::vector
而不是数组呢?你的努力和关注不到10000字节(1000整数)看起来还为时过早。对于现代计算机来说,这是一个非常小的数组。桌面计算机通常有一个更大的默认堆栈。Ubuntu 12.04报告线程的默认堆栈大小为8 M字节(大3个数量级)。如果您的计算机堆栈设置得很小(可能您有很多线程)我的桌面有4克RAM,大概有3克可用(6个数量级大)。我同意使用STD::vector,但是要知道它会“自动扩展”,因为你推回越来越多的值。在Ubuntu,简单的STD::我使用的向量开始自动扩展与第十六推回,(然后再次在32、64和128等处,每次将向量大小加倍)但您必须评估向量实现的增长模式。请注意,C++11向量必须收缩才能适应。但当然,这表明它已经扩展到超出需要的程度,从而超出了您的期望值。感谢您的帮助,我将使用您描述的内容,但它是类赋值的一部分t和指令的编写方式表明它们在某些方面是可以调整大小的。很高兴知道数组没有必要这样做,因为我一直在思考如何做,但没有答案。
#include <iostream>

using namespace std;

void displayListValues(int Array[], int Max)

   {
        int counter = 0;
        for (int i = 0; i < Max; i++)
        {
            cout << counter << " = " << Array[i] << endl;
            counter++;
        }
    }

void main()
   {
        const int Max = 1000;
        int Array[Max];  // this is where I couldn't figure out what to change so the array isn't so huge
        int counter = 0;
        cout << "Enter Numbers. If finished, enter a negative number to continue" << endl;
        do
        {
            cin >> Array[counter];
            if (Array[counter] < 0)
                break;

        } while (counter < Max);
        displayListValues(Array, Max);
    }