gpt4 book ai didi

c++ - 带有两个参数的构造函数的 generate_n

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:20:12 25 4
gpt4 key购买 nike

嗨我正在尝试执行以下操作:

struct A {
A(int i, int j){}
}

int startValue = 10;
vector<A> v;
generate_n(back_inserter(v), 10, ???;

如何“传递”两个参数 startValue 和仿函数 rand?

谢谢

最佳答案

由于生成器是一个函数对象,您可以实例化生成器并为其构造函数提供参数:

class MyGenerator
{
private:
int startValue;
public:
MyGenerator(int startValue): startValue(startValue) {}

// generate an instance of A
A operator()()
{
return A(startValue, rand()); // or whatever you were planning to do here...
}
};

...
//down in your code (added Fred's sugestion)
generate_n(back_inserter(v), 10, MyGenerator(startValue));

然后每次生成时,您都可以使用 startValue 和 rand 来计算下一个用于构造 A 对象的参数。

关于c++ - 带有两个参数的构造函数的 generate_n,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4819261/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com