C++ 在VisualStudio调试器中如何访问iIntarray元素?
嗨,伙计们 < P>我用CPLEX通过C++语言来解决MLP模型中的MILP模型,这些代码库分别将变量和参数数组编码为<代码> IloVarArray < /C>和<代码> IloArray < /Cord>对象。我已经阅读了许多关于如何在调试器模式下访问VisualStudio上的普通数组的问题 但是,如果要访问存储在C++ 在VisualStudio调试器中如何访问iIntarray元素?,c++,visual-studio,c++builder,cplex,C++,Visual Studio,C++builder,Cplex,嗨,伙计们 < P>我用CPLEX通过C++语言来解决MLP模型中的MILP模型,这些代码库分别将变量和参数数组编码为 IloVarArray < /C>和 IloArray < /Cord>对象。我已经阅读了许多关于如何在调试器模式下访问VisualStudio上的普通数组的问题 但是,如果要访问存储在iIntarray数组的i-th位置上的值,在即时窗口上查询数组,i-1,并不是很有用,因为您会收到一条信息性很强的消息: IloArray<__int64>: {_impl=0x0
iIntarray数组
的i-th
位置上的值,在即时窗口上查询数组,i-1
,并不是很有用,因为您会收到一条信息性很强的消息:
IloArray<__int64>: {_impl=0x0000028c514ad968 {_max=4 _sizeof=8 _size=3 ...} }
IloArray:{{u impl=0x0000028c514ad968{{u max=4{u sizeof=8}u size=3…}
如您所见,它包含一条有用的信息,数组大小(例如,array
在其第一维度上包含三个元素,因为它可能包含多个元素)。如果试图索引超出数组边界,它甚至不会提示错误
但是,除非包含大量的cout
指令,并可能包含一堆for
循环,以及数百万次重建项目,否则无法访问数组中的值,即使在中等大小的模型中,这也是非常耗时的
那么,我们可以在调试器上轻松地访问
IloArray
元素吗,或者cout
是我唯一可用的选项吗?你知道像IloIntArray这样的类实际上只是“句柄”类吗?除了指向相应“实现”类实例的指针(通常称为“_impl”)之外,这些类几乎不包含(或什么也不包含)。它们的定义只是为了使使用这些类的语法看起来更清晰(例如,您不需要一直取消引用指针等)
我曾经有过一组VisualStudio定义,用于更改调试器如何显示这些类的实例(请参见示例),但这些定义似乎已经丢失,我再也找不到副本了
VS的更高版本使用不同的方法:您知道像iLintarray这样的类实际上只是“句柄”类吗?除了指向相应“实现”类实例的指针(通常称为“_impl”)之外,这些类几乎不包含(或什么也不包含)。它们的定义只是为了使使用这些类的语法看起来更清晰(例如,您不需要一直取消引用指针等) 我曾经有过一组VisualStudio定义,用于更改调试器如何显示这些类的实例(请参见示例),但这些定义似乎已经丢失,我再也找不到副本了
更高版本的VS使用不同的方法:非常感谢!音乐会技术在总体上确实非常有用。我承认,这是一种更干净、更简单的建模和求解模型的方法,也有助于访问CPLEX优化过程,但需要一段时间才能适应它,以便有效地使用它。谢谢你的帮助@Timchippingtonderrick非常感谢!音乐会技术在总体上确实非常有用。我承认,这是一种更干净、更简单的建模和求解模型的方法,也有助于访问CPLEX优化过程,但需要一段时间才能适应它,以便有效地使用它。谢谢你的帮助@TimChippingtonDerrick