好的,一个简单的问题,但我找不到我以前的答案......
在这里。
我将我的编译器更新为c ++ 11,由于这个原因,我无法事先初始化数组。这是代码:
class Something{
public:
int array[5];
void doSomething();
};
void Something::doSomething()
{
array={1,2,3,4,5};
}
这事先完全没问题,我把它实现到我的新项目中(但由于最近融化而丢失了代码......)并且不记得我是如何为我的生活做的。我知道它非常相似,但每次尝试都会出错。我甚至尝试过:
class Something{
public:
int array[5];
void doSomething();
};
void Something::doSomething()
{
int Temparray[]={1,2,3,4,5};
array[]=Temparray[];
}
但仍然一无所获......我无法弄清楚它是什么,并且抨击谷歌浪费了2个小时的编程......
答案 0 :(得分:1)
我建议std::array
#include <array>
class Something{
public:
std::array<int,5> array;
void doSomething();
};
void Something::doSomething()
{
array = std::array<int,5>{1,2,3,4,5};
}
或者,复制内容:
class Something{
public:
int array[5];
void doSomething();
};
void Something::doSomething()
{
int tmp[] = {1,2,3,4,5};
std::copy(
std::begin(tmp),
std::end(tmp),
std::begin(array)); // beware of buffer overrun
}