我来自java背景,我可以用Java做一些我需要用C++做的事,但我不知道该怎么做.
我需要声明一个数组,但此刻我不知道它的大小.一旦我知道了大小,我就设置了数组的大小.我java我会做的事情如下:
int [] array;
Run Code Online (Sandbox Code Playgroud)
然后
array = new int[someSize];
Run Code Online (Sandbox Code Playgroud)
我如何在C++中执行此操作?
Sin*_*ion 28
你想std::vector在大多数情况下使用.
std::vector<int> array;
array.resize(someSize);
Run Code Online (Sandbox Code Playgroud)
但是如果你坚持使用new,那么你要做的工作比用Java做的多一点.
int *array;
array = new int[someSize];
// then, later when you're done with array
delete [] array;
Run Code Online (Sandbox Code Playgroud)
默认情况下,没有c ++运行时带有垃圾收集,因此delete[]需要避免内存泄漏.你可以使用智能指针类型获得两全其美,但实际上,只需使用std::vector.
cod*_*ict 15
在C++中,您可以:
int *array; // declare a pointer of type int.
array = new int[someSize]; // dynamically allocate memory using new
Run Code Online (Sandbox Code Playgroud)
一旦你完成了使用memory..de-使用delete分配它:
delete[]array;
Run Code Online (Sandbox Code Playgroud)