返回一个具有指定值的新数组
Return a new array with specified values?
有没有办法写出下面的函数代码
int* returnFilledArray() {
int* arr = new int[2];
arr[0] = 1;
arr[1] = 2;
return arr;
}
就像那样?(创建并填充数组为一行)。
int* returnFilledArray() {
return new int {1,2};
}
if已经尝试了各种组合,但我总是得到一些语法错误,所以当它是如果您能给我详细的解释,我将不胜感激。
是…
std::vector<int> returnFilledArray()
{
int a[] = {1, 2};
return std::vector<int>(a, a+2);
}
如果不使用特殊的库,你就不能在标准c++(03)中做你想做的事情。
c++ 0x支持初始化器列表-这是一个选项吗?
我曾经在这里回答过类似的问题。您可以使用以下技巧:
template<typename T, T _0, T _1, T _2, T _3, T _4> struct Array
{
static T* Init (T *a)
{
a[0] = _0;
a[1] = _1;
a[2] = _2;
a[3] = _3;
a[4] = _4;
return a;
}
};
int* fun ()
{
return Array<int, 1, 2, 3, 4, 5>::Init(new int[5]);
}
In C++0x
:
#include <vector>
std::vector<int> returnFilledArray()
{
return std::vector<int> {1,2} ;
}
如果您不允许使用std::vector
,那么您可以尝试使用宏:
#define FILLED_ARRAY(name) int name[] = {1, 2}
我可以使用
完成类似的任务int *ptr = new int[]{1, 2, 3};
你可以从你的函数返回
return (new int[]{1, 2, 3});
相关文章:
- 新的整数数组向右移动?
- 标量"新 T "与数组"新 T[1]"
- 如何将标准::字符串内容克隆到新的 char[] 数组
- C++ strcpy_s复制到新的字符数组时引发错误
- 无限数组C++在一个表达式中使用两个新值调整数组大小
- 新动态字符数组末尾的空字符
- c ++新的C数组分配,RAII或简单的shared_ptr/boost::shared_array
- 返回新分配的数组
- 数组的末尾指向新分配的数组C++
- 如何创建新的字符串数组
- 动态数组:将中两个动态数组中元素的值添加到新的动态数组中
- 一组数组添加到一个新数组
- 将新值写入数组
- 按值传递字符数组,并从函数返回一个新的字符数组
- 用不同的指定值初始化新的c++数组
- [C++]在此代码之前不存在的析构函数中引发的内存错误。尝试创建一个新的动态数组并填充它
- 动态分配一个新的整数数组
- 将两个字符串的相似性写入新的动态数组的最简单方法
- 如何在C++中动态创建新的 2D 数组
- 分配新的布尔数组指针