Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/161.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 用最少/一行代码更新一维数组的多个位置_C++_C_Logic_Pseudocode - Fatal编程技术网

C++ 用最少/一行代码更新一维数组的多个位置

C++ 用最少/一行代码更新一维数组的多个位置,c++,c,logic,pseudocode,C++,C,Logic,Pseudocode,我有一个用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); 如果在另一个数组中有要

我有一个用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);

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

std::copy(newCone, newCone + 7, cone1);

如果要在一行上完成,请在一行上完成:

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

使所有代码都显示在一行上/尽管目标是minium代码,但这并不能提高效率-跨更多行的可读代码比占用更少文件空间的紧凑代码要好。

如果要在一行上完成,那么在一行上完成:

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

使所有代码都显示在一行上/尽管目标是minium代码,但这并不能提高效率-跨更多行的可读代码比占用更少文件空间的紧凑代码要好。

如果您愿意切换到使用
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 };
}
#include <array>

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

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

如果您愿意切换到使用
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 };
}
#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文件。

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

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

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


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

我想用我选择的数字更新main函数中的同一数组,写入最小代码,而不是逐个单元格更新。好的,我的答案是一行,如果您不将选择的数字放入其他数组,那么,除了“圆锥[1]=12f等”之外,我看不到其他方法。只需定义“Gfloat newCone[]={12f,56f,…}”,谢谢。让我们看看是否有其他人有解决方案!再次感谢。我想用我选择的数字来更新主函数中的相同数组,并编写最小代码,而不是逐个单元格进行更新。好吧,我的答案是一行,如果你不把你选择的数字放在其他数组中,那么除了“cone[1]=12f等”之外,我看不到其他方法。只需定义“Gfloat newCone[]={12f,56f,…}”,谢谢。让我们看看是否有其他人有解决方案!再次感谢。尝试用建议的代码替换我的代码,但出现错误。我将Eclipse与MinGW一起使用。错误很明显。统一初始化和
initializer\u list
是C++11的特性。将
-std=c++0x
-std=c++11
添加到命令行选项以启用c++11模式。我还建议更新到新版本的GCC。我已经将GCC更新到了新版本,但错误是相同的。请告诉我如何给出那个命令行参数。我正在使用Eclipse IDE for C/C++开发人员版本:Juno Service Release 2构建id:20130225-0426您仍然需要将
-std-C++11
-std-C++0x
添加到命令行。错误消息对此非常清楚。尝试用建议的代码替换我的代码,但出现了错误。我将Eclipse与MinGW一起使用。错误很明显。统一初始化和
initializer\u list
是C++11的特性。将
-std=c++0x
-std=c++11
添加到命令行选项以启用c++11模式。我还建议更新到新版本的GCC。我已经将GCC更新到了新版本,但错误是相同的。请告诉我如何给出那个命令行参数。我正在使用Eclipse IDE for C/C++开发人员版本:Juno Service Release 2构建id:20130225-0426您仍然需要将
-std-C++11
-std-C++0x
添加到命令行。关于这一点,错误信息非常清楚。