google or-tools glop: как создать массив указателей на const-объект? - PullRequest
0 голосов
/ 29 сентября 2018

Я пытаюсь использовать 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());
}

это так, как это должно работать?Кто-нибудь может поделиться некоторым опытом здесь?

Ответы [ 2 ]

0 голосов
/ 01 октября 2018

Если вам действительно нужны указатели для константных переменных, я бы сказал:

std::vector<const MPVariable*> variables;

Но я всегда использовал

std::vector<MPVariable*> variables;
0 голосов
/ 29 сентября 2018

Обратите внимание, что вы не поместили const постоянно:

`MPVariable* const x`

против

`std::vector<MPVariable const *>`

функция MakeNumVar() возвращает MPCariable*, поэтому ничто не должно быть const.

...