c++ - 如何在 Visual Studio 调试器中访问 IloIntArray 元素?

标签 c++ visual-studio c++builder cplex

嗨,StackOverFlow 的伙伴们,

我正在通过 Concert Technology 库使用 CPLEX 解决 C++ 中的 MILP 模型,该库将变量和参数数组分别编码为 IloVarArrayIloArray 对象。我已经阅读了许多关于如何在调试器模式下访问 Visual Studio 上的普通数组的问题。

但是,如果您想访问存储在i-th 中的值,则在立即窗口 上查询array,i-1 IloIntArray 数组 的 code> 位置不是很有用,因为您会收到一条信息性很强的消息:

IloArray<__int64>: {_impl=0x0000028c514ad968 {_max=4 _sizeof=8 _size=3 ...} }

如您所见,其中包含一条有用的信息,例如数组大小。 array 在其第一个维度上包含三个元素,因为它可能包含多个元素。如果尝试索引超出数组边界,它甚至不会提示错误!

但是除非包含大量的 cout 指令,并且可能还有一堆 for 循环,否则您无法访问数组中的值就像重建项目一百万次一样,即使在中等大小的模型中也是极其耗时的。

那么,我们是否可以在调试器上轻松访问 IloArray 元素,或者 cout 是我唯一可用的选项吗?

最佳答案

您知道像 IloIntArray 这样的类实际上只是“处理”类吗?除了指向相应“实现”类的实例的指针(通常称为“_impl”)之外,它们几乎不包含(或什么都不包含)。它们的定义只是为了使使用这些类的语法看起来更清晰(例如,您不需要保留取消引用指针等)。

我曾经有一组 Visual Studio 定义,用于更改调试器如何显示这些类的实例(参见例如 https://msdn.microsoft.com/en-us/library/aa730838(v=vs.80).aspx),但它似乎丢失了,我再也找不到拷贝了。

VS 的更高版本使用不同的方法:https://blogs.msdn.microsoft.com/vcblog/2012/07/12/debugger-type-visualizers-for-c-in-visual-studio-2012/

关于c++ - 如何在 Visual Studio 调试器中访问 IloIntArray 元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36813713/

相关文章:

c++ - Box2D 对象位置不会受到速度变化的影响

c# - 桌面应用程序中的数据可视化

asp.net - 如何测试模拟多个并发请求的webservice

visual-studio - 安装依赖多个源的 NuGet 包

我可以在 Delphi 中使用 C 头文件吗?

c++ - OpenGL 在正交和透视之间切换

C++ 对静态变量的 undefined reference

mysql - 从 datagridview 中删除记录

c++ - 如何根据编号(从键盘输入)创建可编辑字段?

button - 如何改变TButton的颜色?