2014-04-27 59 views
0

在Java中,我們有時會這麼做:的Java和C++轉換

int [] foo = new int [5]

你如何在C++中做到這一點?我已經把它放進去了,它給了我一個錯誤。

+0

有很多方法。例如'std:array foo;' – Michael

+4

當然,它給出了一個錯誤,它們是不同的語言。如果你要反覆提出這種問題的風格,你應該投資一個[很好的C++書](http://stackoverflow.com/q/388242/395760)。或者只是磨練你的搜索互聯網的能力...... – delnan

+0

@ user3554687:如果你喜歡其中一個答案,你可以通過點擊答案旁邊的勾號來接受它 - 它應該變成綠色。 –

回答

1

使用

int foo[5]; 

int *foo = new int[5]; 
... 
delete []foo; // remember to release its memory afterwards!!! 

#include <vector> 
... 
std::vector<int> foo(5); 
2
std::vector<int> foo(5); 

不要使用int [],這是確定的,如果你的數組的大小是固定的(你不需要新的,只需

int a[5]; 

),但如果它是可變的,比它是一種痛苦,因爲你需要記住將其分開。

+0

我建議使用std :: vector而不是「裸」指針,因爲user3554687需要使用std庫,這將大大有利於他。如果數組的大小不固定(通常是這種情況),則裸指針需要取消分配。這比C++更C。 –

+1

*取消分配。 – Brandon

2
int *foo = new int[5]; 

這是它是如何在不使用任何的庫,但你必須手動刪除記憶你用它做,否則你有內存泄漏

不建議之後你這樣做的想法。如果數組的大小在其生命週期內不會更改,則應該使用std::array。如果你想要一個可以動態增長的數組,那麼你應該使用std::vector

+0

如果大小是固定的,則不需要'新',只需要int [5];會做。 –

+0

@YuliaV這與Java計數器部分的效果並不完全相同 – Caesar