我在 C++ 中全局初始化了一维数组
Gfloat cone1[] = { 0.0f, 2.4f, -11.0f, 30.0f, -1.5, 0.0, 0.0 };
我想在编写最少/一行代码的主函数中使用我选择的不同数字来更新它的所有值。
是否可以?
我不想这样做:-
cone1[0] = 12f , cone1[1] = 56f; ...
我在 C++ 中全局初始化了一维数组
Gfloat cone1[] = { 0.0f, 2.4f, -11.0f, 30.0f, -1.5, 0.0, 0.0 };
我想在编写最少/一行代码的主函数中使用我选择的不同数字来更新它的所有值。
是否可以?
我不想这样做:-
cone1[0] = 12f , cone1[1] = 56f; ...
如果您在另一个数组中有要替换的值,则可以使用 std::copy:
std::copy(newCone, newCone + 7, cone1);
如果你想在一行上做,那么在一行上做:
cone1[0] = 12f; cone1[1] = 56f; ... // and so on
让它全部出现在一行上/虽然目标是最小代码并不能提高效率 - 跨多行的可读代码比占用文件空间更少的紧凑代码更好。
如果您愿意切换到使用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 };
}
我按照@Captain Obvlious 的建议解决了我的问题。
将-c -fmessage-length=0替换为-c -fmessage-length=0 -std=c++11
确保在-c -fmessage-length=0和-std=c++11之间留一个空格
否则,您的项目将显示它已构建但不会创建 .exe 文件。