有没有一种方法,以静态初始化在C ++中动态分配的数组? [英] Is there a way to statically-initialize a dynamically-allocated array in C++?

查看:115
本文介绍了有没有一种方法,以静态初始化在C ++中动态分配的数组?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

在C ++中,我可以静态初始化数组,例如:

In C++, I can statically initialize an array, e.g.:

int a[] = { 1, 2, 3 };

有没有一种简单的方法来初始化一个动态分配的数组一组立即值的?

Is there an easy way to initialize a dynamically-allocated array to a set of immediate values?

int *p = new int[3];
p = { 1, 2, 3 }; // syntax error

......或者我绝对要手动复制这些价值?

...or do I absolutely have to copy these values manually?

推荐答案

您可以在C ++ 0x中:

You can in C++0x:

int* p = new int[3] { 1, 2, 3 };
...
delete[] p;

不过,我喜欢好载体:

But I like vectors better:

std::vector<int> v { 1, 2, 3 };

如果你没有一个C ++ 0x中的编译器,升压可以帮助您:

If you don't have a C++0x compiler, boost can help you:

#include <boost/assign/list_of.hpp>
using boost::assign::list_of;

vector<int> v = list_of(1)(2)(3);

这篇关于有没有一种方法,以静态初始化在C ++中动态分配的数组?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆