3 回答

TA貢獻1869條經驗 獲得超4個贊
假設您確實確實想要一個數組而不是std :: vector,那么“ C ++方式”就是這樣
#include <algorithm>
int* array = new int[n]; // Assuming "n" is a pre-existing variable
std::fill_n(array, n, 0);
但是請注意,實際上,這實際上仍是一個將每個元素分配為0的循環(實際上沒有其他方法可以使用,除非有硬件級別的支持的特殊體系結構)。

TA貢獻1841條經驗 獲得超3個贊
分配固有類型數組的方法有很多,所有這些方法都是正確的,盡管選擇哪種方法取決于...
手動初始化循環中的所有元素
int* p = new int[10];
for (int i = 0; i < 10; i++)
{
p[i] = 0;
}
使用std::memset功能<cstring>
int* p = new int[10];
std::memset(p, 0, 10);
使用std::fill_n來自<algorithm>
int* p = new int[10];
std::fill_n(p, 10, 0);
使用std::vector容器
std::vector<int> v(10); // elements zero'ed
如果C ++ 0x可用,則使用初始化程序列表功能
int a[] = { 1, 2, 3 }; // 3-element static size array
vector<int> v = { 1, 2, 3 }; // 3-element array but vector is resizeable in runtime
- 3 回答
- 0 關注
- 426 瀏覽
添加回答
舉報