好吧,当涉及到C ++(从VB转移过来)时,我是一个很新的东西,我似乎无法解决如何填充数组的问题:
array[0] = 1
array[1] = 2
等等
正如可以预料的那样,我试过这个:
float posVector[3]; //Declared outside of int main() as needs to be global
posVector = {0.0f,0.0f,0.0f}; //Inside int main()
导致显示此错误:
extended initializer lists only available with -std=c++0x or -std=gnu++0x [enabled by default]
到目前为止,我无法在网上找到任何帮助。因此,任何有关修复此问题的建议都将不胜感激!
答案 0 :(得分:5)
声明数组后,无法使用初始化列表初始化它。你可以选择
float posVector[] = {0.0f,0.0f,0.0f};
甚至更好地使用std::vector:
#include <vector>
std::vector<float> posVector = {0.0f,0.0f,0.0f};
答案 1 :(得分:1)
可以这样做:
l
答案 2 :(得分:0)
我认为最短的方式:float posVector[] { 0.0f,0.0f,0.0f };
答案 3 :(得分:0)
据我所知,问题不是关于INITIALIZING数组,而是关于在数组已经创建之后分配它。答案是'没办法&#39;。初始化后无法分配数组。但是,一段时间内固定大小的数组可能会更充分地呈现为结构,而情况确实如此!坐标更好地呈现为结构!
没有评论全局变量的必要性(很可能,不需要),这是让它工作的方法:
struct Coordinate {
float x;
float y;
float z;
};
Coordinate coord;
void foo() {
coord = {1, 2, 3};
}