24小时热门版块排行榜    

CyRhmU.jpeg
查看: 373  |  回复: 0

木叶清风

木虫 (正式写手)

[交流] c++中初始化数组

看见有人问,大致想了几种给动态数组初始化/赋值的方法,大家还有其他方法的可以补充。
CODE:
#include <algorithm>
#include <numeric>


int main(int argc, char* argv [])
{
  // 初始化a的所有元素为0
  int *a = new int[10]{0};
  delete [] a;
  a = nullptr;

  // 把b的所有元素赋值为1
  int *b = new int[10];
  std::fill(b, b + 10, 1);
  delete [] b;
  b = nullptr;

  // 把c的元素赋值为1, 2, 3, 4, ..., 10
  int *c = new int[10];
  std::iota(c, c + 10, 1);
  delete [] c;
  c = nullptr;

  // 把d的元素都赋值为1
  int *d = new int[10];
  std::generate_n(d, 10, [](){return 1; });
  delete [] d;
  d = nullptr;

  // 把e的所有元素都赋值为1
  int *e = new int[10];
  std::generate(e, e + 10, [](){return 1; });
  delete [] e;
  e = nullptr;

  // 把f的前四个元素初始化为1, 2, 3, 4, 剩余的都初始化为0
  int *f = new int[10]{1, 2, 3, 4};
  delete [] f;
  f = nullptr;

  return 0;
}

回复此楼
www.cvdelver.com
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

智能机器人

Robot (super robot)

我们都爱小木虫

相关版块跳转 我要订阅楼主 木叶清风 的主题更新
普通表情 高级回复(可上传附件)
信息提示
请填处理意见