0

我在 C++ 中全局初始化了一维数组

Gfloat cone1[] = { 0.0f, 2.4f, -11.0f, 30.0f, -1.5, 0.0, 0.0 };

我想在编写最少/一行代码的主函数中使用我选择的不同数字来更新它的所有值。

是否可以?

我不想这样做:-

cone1[0] = 12f , cone1[1] = 56f; ...
4

4 回答 4

1

如果您在另一个数组中有要替换的值,则可以使用 std::copy:

std::copy(newCone, newCone + 7, cone1);
于 2013-07-04T19:30:06.220 回答
1

如果你想在一行上做,那么在一行上做:

cone1[0] = 12f; cone1[1] = 56f; ... // and so on

让它全部出现在一行上/虽然目标是最小代码并不能提高效率 - 跨多行的可读代码比占用文件空间更少的紧凑代码更好。

于 2013-07-04T19:42:08.327 回答
1

如果您愿意切换到使用std::vector,或者std::array您可以使用统一初始化和分配。

以下示例std::vector用于可变大小的数组。

#include <vector>

int main()
{
    std::vector<Gfloat> cone1 { 0.0f, 2.4f, -11.0f };

    cone1 = { 30.0f, -1.5, 0.0 };
}

以下示例std::array用于固定大小的数组。

#include <array>

int main()
{
    std::array<Gfloat, 3> cone1 { 0.0f, 2.4f, -11.0f };

    cone1 = { 30.0f, -1.5, 0.0 };
}
于 2013-07-04T19:42:48.253 回答
0

我按照@Captain Obvlious 的建议解决了我的问题。

-c -fmessage-length=0替换为-c -fmessage-length=0 -std=c++11

确保在-c -fmessage-length=0-std=c++11之间留一个空格

否则,您的项目将显示它已构建但不会创建 .exe 文件。

于 2013-07-08T13:01:19.250 回答