3 回答
![?](http://img1.sycdn.imooc.com/54584ed2000152a202200220-100-100.jpg)
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的循环(实际上没有其他方法可以使用,除非有硬件级别的支持的特殊体系结构)。
![?](http://img1.sycdn.imooc.com/545845b40001de9902200220-100-100.jpg)
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 关注
- 412 浏览
添加回答
举报