我有以下代码:
docker run -it -p 4567-4578:4567-4578 -p 8080:8080 localstack/localstack
我将使用整数bool detectKeyboard() {
bool bHasKeyboard = false;
UINT nDevices;
UINT ret = GetRawInputDeviceList(NULL, &nDevices, sizeof(RAWINPUTDEVICELIST));
if (ret == 0) {
PRAWINPUTDEVICELIST pRawInputDeviceList = new RAWINPUTDEVICELIST[nDevices];
ret = GetRawInputDeviceList(pRawInputDeviceList, &nDevices,
sizeof(RAWINPUTDEVICELIST));
if (ret != (UINT)-1) {
for (UINT i = 0; i < nDevices; ++i) {
if (pRawInputDeviceList[i].dwType == RIM_TYPEKEYBOARD) {
bHasKeyboard = true;
break;
}
}
}
// else error calling GetRawInputDeviceList to fetch the devices list
delete[] pRawInputDeviceList;
}
// else error calling GetRawInputDeviceList to return number of devices
return bHasKeyboard;
}
作为另一组loop (d,
rnd(d)=uniformInt(1,nd)
);
的索引。但是例如,当rnd(d)
是整数,但是s(i)
没有有效的索引,因为rnd(d)=34.000
不是s(34.000)
! GAMS会显示错误消息。
答案 0 :(得分:0)
我要点菜吗?如果是,则可以使用以下方式:
loop(d,
s(i)$(ord(i)=rnd(d)) = ...;
)
答案 1 :(得分:0)
我不知道@Lutz解决方案是否适合您。如果没有,您可以尝试以下方法: 首先,不必遍历set d,只需一个简单的操作即可:
rnd(d) = uniformInt(1,nd);
就足够了。 下一行可以这样:
loop(d,
s(i)$(i.val = ord(d)) = . . .;
);
如果您仍然遇到问题,则可以使用@Lutz建议,只需将'* 1.000'附加到'ord(i)'和/或'rnd(d)'(以给您的问题为准)。