1

好的,一个简单的问题,但我找不到以前的答案......

这里是。

我将我的编译器等更新为 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 个小时的编程......

4

1 回答 1

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
}
于 2013-08-07T00:51:31.537 回答