【问题标题】:How to see in Xcode using c++ std::vector elements types and values?如何使用 c++ std::vector 元素类型和值在 Xcode 中查看?
【发布时间】:2014-09-27 08:59:04
【问题描述】:

在 Visual Studio 中,当我使用 c++ std::vector 调试代码时,我可以看到其中的所有元素,甚至可以深入到每个元素,不知何故在 Xcode 5.1 中我可以看到这个选项
我所看到的只是向量的迭代器。

这是我在 Xcode 中尝试查看矢量元素时看到的内容: 如何在调试窗口中查看向量元素。

【问题讨论】:

  • 格式正确的问题。苹果从来没有这么好过。例如,std::vector<string>(无引用)本地自动 var 的表示方式与传递的参数(有或无引用)不同。更糟糕的是,std::vector<MyClass>,其中MyClass 只是struct MyClass { std::string data; }; 会做你希望的事情(非常类似于VS-watches),但不是作为参数;仅作为本地自动变量。先生,我感觉到你的痛苦。
  • 您还可以看看 IntelliJ 的 AppCode - 它在 Mac 上支持 C++,我用它来查看 stl 容器。
  • 是的,它简直太棒了,看起来只有 objC,如果你喜欢用 c++ 和 xcode 来做,现在在 xcode 中是个大问题,检查我的另一个问题,它只在 VC++ 中快速解决stackoverflow.com/questions/25125657/…
  • 看起来这只是引用类型 (&) 的问题。尝试上堆栈到调用函数并从那里观察值。

标签: c++ xcode5 stdvector


【解决方案1】:

对我来说(Xcode 6.0.1),这只发生在引用 (&) 类型上。

尝试以下方法之一:

  1. 添加自定义监视表达式*&strLineOfChrsVec(取消引用变量的地址)。
  2. 向上堆栈并观察您传递给函数的原始变量。

【讨论】:

    【解决方案2】:

    为了临时查看向量中单个元素的值,您可以右键单击它然后选择:

    打印“[i]”的描述

    它将打印到输出中:

    *([1]) 的打印说明: (std::__1::basic_string, std::__1::allocator >) [1] = "Hi"

    其中“Hi”是位置 1 处向量的值。

    【讨论】:

    • 不适合我,我得到了同样的垃圾。
    猜你喜欢
    • 2017-12-15
    • 2017-04-27
    • 2018-01-11
    • 1970-01-01
    • 2014-01-14
    • 2018-05-17
    • 1970-01-01
    • 1970-01-01
    • 2011-12-27
    相关资源
    最近更新 更多