1

我正在尝试将 google glop 用于研究项目官方网站

我正在使用源代码附带的示例

MPVariable* const x = solver.MakeNumVar(0.0, 1, "x");

我可以看到如何在 glop 中创建变量。

但是,我不明白,如果在编译时没有给出变量的数量怎么办?如果程序从网络接收命令并即时构建问题。

我想应该有一个变量数组?

std::vector<MPVariable*> variables;// is this correct? or it should be:
std::vector<MPVariable const *> variables; // never saw syntax like this before

variables.resize(100);//say, 100 variables
for(std::size_t i = 0; i < variables.size(); ++i){
    variables[i] = solver.MakeNumVar(0.0, createSomeNumber(), createName());
}

这是它应该如何工作的吗?有人可以在这里分享一些经验吗?

4

2 回答 2

1

如果你真的想要指向 const 变量的指针,我会选择:

std::vector<const MPVariable*> variables;

但是我一直用

std::vector<MPVariable*> variables;
于 2018-10-01T11:14:19.147 回答
0

请注意,您没有始终如一地放置const

`MPVariable* const x`

对比

`std::vector<MPVariable const *>`

该函数MakeNumVar()返回 aMPCariable*所以没有什么必须是const

于 2018-09-28T21:41:11.897 回答