C++ 定义结构中向量的长度

C++ 定义结构中向量的长度,c++,vector,struct,std,C++,Vector,Struct,Std,我要使用的结构定义如下。(我正在使用名称空间std): 基本上,当我定义结构时,我需要为3个元素的向量分配空间,我不知道如何做到这一点。我是C++初学者,做了很多研究,但是我找不到答案。谢谢你给我提供的帮助。你可以在构造函数中调用向量构造函数 struct body { string name; float m; vector< float > p; vector< float > v; body(): p(3,0), v(

我要使用的结构定义如下。(我正在使用
名称空间std
):


基本上,当我定义结构时,我需要为3个元素的向量分配空间,我不知道如何做到这一点。我是C++初学者,做了很多研究,但是我找不到答案。谢谢你给我提供的帮助。

你可以在构造函数中调用向量构造函数

struct body {
    string name; 
    float m; 
    vector< float > p; 
    vector< float > v;

    body(): p(3,0), v(3,0) {}
};
结构体{
字符串名;
浮动m;
向量p;
向量v;
body():p(3,0),v(3,0){
};

在构造函数中调用向量构造函数

struct body {
    string name; 
    float m; 
    vector< float > p; 
    vector< float > v;

    body(): p(3,0), v(3,0) {}
};
结构体{
字符串名;
浮动m;
向量p;
向量v;
body():p(3,0),v(3,0){
};

在构造函数中调用向量构造函数

struct body {
    string name; 
    float m; 
    vector< float > p; 
    vector< float > v;

    body(): p(3,0), v(3,0) {}
};
结构体{
字符串名;
浮动m;
向量p;
向量v;
body():p(3,0),v(3,0){
};

在构造函数中调用向量构造函数

struct body {
    string name; 
    float m; 
    vector< float > p; 
    vector< float > v;

    body(): p(3,0), v(3,0) {}
};
结构体{
字符串名;
浮动m;
向量p;
向量v;
body():p(3,0),v(3,0){
};

您可以在
主体的构造函数中指定向量的大小

struct body {
    string name; 
    float m; 
    vector< float > p; 
    vector< float > v;

     body() : p(3), v(3) {}
};

但是,MS VC++拒绝了这一点,加强了之前的建议,即如果您关心可移植性,通常可能希望避免这种情况。

您可以在构造函数中为
正文指定向量的大小:

struct body {
    string name; 
    float m; 
    vector< float > p; 
    vector< float > v;

     body() : p(3), v(3) {}
};

但是,MS VC++拒绝了这一点,加强了之前的建议,即如果您关心可移植性,通常可能希望避免这种情况。

您可以在构造函数中为
正文指定向量的大小:

struct body {
    string name; 
    float m; 
    vector< float > p; 
    vector< float > v;

     body() : p(3), v(3) {}
};

但是,MS VC++拒绝了这一点,加强了之前的建议,即如果您关心可移植性,通常可能希望避免这种情况。

您可以在构造函数中为
正文指定向量的大小:

struct body {
    string name; 
    float m; 
    vector< float > p; 
    vector< float > v;

     body() : p(3), v(3) {}
};

但是,MS VC++拒绝了这一点,强化了之前的建议,即如果您关心可移植性,通常可能希望避免这种情况。

您有几个选择:

1) 添加构造函数以将向量初始化为大小3:

struct body 
{
  body() : p(3), v(3) {}
  string name; 
  float m; 
  vector< float > p; 
  vector< float > v;
};

您有几个选择:

1) 添加构造函数以将向量初始化为大小3:

struct body 
{
  body() : p(3), v(3) {}
  string name; 
  float m; 
  vector< float > p; 
  vector< float > v;
};

您有几个选择:

1) 添加构造函数以将向量初始化为大小3:

struct body 
{
  body() : p(3), v(3) {}
  string name; 
  float m; 
  vector< float > p; 
  vector< float > v;
};

您有几个选择:

1) 添加构造函数以将向量初始化为大小3:

struct body 
{
  body() : p(3), v(3) {}
  string name; 
  float m; 
  vector< float > p; 
  vector< float > v;
};


如果您总是需要3个元素,那么可能
向量
不是您想要的数据结构。我确实总是需要3个元素,但要进行向量计算,使用向量不是很容易吗?“向量计算”?不知道你说的是什么意思
vector
是一种类似数组的结构,用于存储数据,而不是数学类型(普通、乘法等)。啊,我被另一个库中的vector弄糊涂了。那我就写我自己的课程。谢谢你指出这一点。如果你总是想要3个元素,那么可能
向量
不是你想要的数据结构。我确实总是想要3个元素,但是要做向量计算,使用向量不是很容易吗?“向量计算”?不知道你说的是什么意思
vector
是一种类似数组的结构,用于存储数据,而不是数学类型(普通、乘法等)。啊,我被另一个库中的vector弄糊涂了。那我就写我自己的课程。谢谢你指出这一点。如果你总是想要3个元素,那么可能
向量
不是你想要的数据结构。我确实总是想要3个元素,但是要做向量计算,使用向量不是很容易吗?“向量计算”?不知道你说的是什么意思
vector
是一种类似数组的结构,用于存储数据,而不是数学类型(普通、乘法等)。啊,我被另一个库中的vector弄糊涂了。那我就写我自己的课程。谢谢你指出这一点。如果你总是想要3个元素,那么可能
向量
不是你想要的数据结构。我确实总是想要3个元素,但是要做向量计算,使用向量不是很容易吗?“向量计算”?不知道你说的是什么意思
vector
是一种类似数组的结构,用于存储数据,而不是数学类型(普通、乘法等)。啊,我被另一个库中的vector弄糊涂了。那我就写我自己的课程。感谢您指出这一点。或者只需向编译器添加适当的标志。请记住,C++11还不是默认值。我认为第二个示例中不允许使用
()
,并且
{}
可能会导致调用错误的构造函数。我非常确定它将创建一个大小为1的向量,其值为
3.0f
。很有趣。我非常确定,对于一个有一个带有初始值设定项列表的构造函数的类,如果它是可行的,那么它将胜过所有其他类。我唯一不能百分之百确定的是整型到浮点型的转换是否会影响这一点。@juanchopanza:请参阅编辑后的答案。做更多的阅读,虽然int-float转换通常会被认为是一个缩小的转换(这就是为什么我认为初始值设定项列表首先不可行),但在这种情况下有一个允许它的漏洞。或者只是向编译器添加适当的标志。请记住,C++11还不是默认值。我认为第二个示例中不允许使用
()
,并且
{}
可能会导致调用错误的构造函数。我非常确定它将创建一个大小为1的向量,其值为
3.0f
。很有趣。我非常确定,对于一个有一个带有初始值设定项列表的构造函数的类,如果它是可行的,那么它将胜过所有其他类。我唯一不能百分之百确定的是int到float的转换是否会影响这一点。@juanchopanza:请参阅编辑的answ