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
sov=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)