![](/img/trans.png)
[英]How can I initialize a static const vector that is a class member in c++11?
[英]How would I initialize an array of 'int' as a class member in c++11?
好的,這是一個簡單的問題,但我找不到以前的答案...
這里是。
我將編譯器等更新為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[];
}
還是一無所有...我無法弄清楚這是什么,並且對Google浪費了2個小時的編程工作...
我建議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
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.