簡體   English   中英

我如何將'int'數組初始化為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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM