C++ 对象向量-如何向构造函数发送参数?

C++ 对象向量-如何向构造函数发送参数?,c++,vector,parameters,constructor,C++,Vector,Parameters,Constructor,假设我有以下代码: struct obj{ int v; obj(int i = 1){ v = i; } }; int main(){ vector<obj> v1(10); // (1) vector<obj> v2(15); // (2) } 结构对象{ INTV; obj(int i=1){ v=i; } }; int main(){ 向量v1(10);/(1) 向量v2(15);/(2) }

假设我有以下代码:

struct obj{
    int v;
    obj(int i = 1){
        v = i;
    }
};

int main(){
    vector<obj> v1(10);    // (1)
    vector<obj> v2(15);    // (2)
}
结构对象{ INTV; obj(int i=1){ v=i; } }; int main(){ 向量v1(10);/(1) 向量v2(15);/(2) } 根据上文:

数字(1)创建一个向量,该向量有10个默认值为
的实例
v=1

编号(2)如何将15作为参数发送到
obj
so
v=15


我在网上搜索并在这个网站上找到了这个,但它似乎是关于更高级的东西,作为一个新手,我没有得到它

您可以这样做:

vector<obj> v3 (10,15);
见鲍姆的便条。这是一个很好的参考。

向量v1(10);//创建一个包含10个对象的向量,每个对象都已初始化
vector<obj> v1(10);     // creates a vector of 10 obj, each initialized 
                        // with the default value 1

vector<obj> v2(10, 15); // creates a vector of 10 obj, each initialized 
                        // with the value 15
//默认值为1 向量v2(10,15);//创建一个包含10个对象的向量,每个对象都已初始化 //值为15
如果要将多个参数传递给构造函数:

vector<obj> v3(10, obj(15, x, y)); // creates a vector of 10 obj, each 
                                   // initialized with (15, x, y)
向量v3(10,obj(15,x,y));//创建一个10个对象的向量,每个对象 //初始化为(15,x,y)

当然,您必须提供一个构造函数,该构造函数需要三个参数才能工作。

您希望创建一个包含15个参数的
obj
,还是一个包含一定数量的参数的向量,每个参数包含15个?10个对象,15个作为构造值?还有,如果我有两个或两个以上的参数呢?为什么不投票呢。请告诉我原因以便我能了解。这是我有史以来的第一个问题。否决票应该附有解释否决票原因的评论。谢谢@Sid S。这太完美了。注意
vector v2(10,15)
向量v2(10,obj(15))相同
向量
构造函数的第二个参数是
常量T&value
,其中每个元素都以
作为其输入来构造副本。传递
15
本身会创建一个隐式的临时
obj
以再次传递到
值。我投票赞成你们的答案,但系统告诉我我不到15分。没关系。重要的是你找到了你想学的东西。快乐学习:)
vector<obj> v1(10);     // creates a vector of 10 obj, each initialized 
                        // with the default value 1

vector<obj> v2(10, 15); // creates a vector of 10 obj, each initialized 
                        // with the value 15
vector<obj> v3(10, obj(15, x, y)); // creates a vector of 10 obj, each 
                                   // initialized with (15, x, y)