我们说我有以下代码:
struct obj{
int v;
obj(int i = 1){
v = i;
}
};
int main(){
vector<obj> v1(10); // (1)
vector<obj> v2(15); // (2)
}
以上:
数字(1)会创建一个包含10个 obj
实例的向量,默认为 v=1
。
编号(2)如何将 15 作为参数发送到 obj
,以便 v=15
???
我在网上搜索了一下,在这个网站上发现了这个 article ,但它似乎是更高级的东西,作为一个新手,我没有得到它。
答案 0 :(得分:3)
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)
当然,您必须提供一个构造函数,该构造函数需要三个参数才能工作。
答案 1 :(得分:2)
你可以这样做:
vector<obj> v3 (10,15);
10是物体数量 15是构造函数的参数。
对于多个参数,您可以将多个值作为列表发送,如下所示:
vector<obj> v3 (10, {15,25} );
<强> {15,25}
即可。这称为初始化列表。
另一种选择是:
vector<obj> v3(10, obj(15,25));
请参阅 Baum 的说明。这是一个很好的参考。