我需要在autoexp.dat中输入什么才能检查向量中包含的类的数据成员
What do I need to enter in autoexp.dat in order to be able to inspect a data member of a class contained in a vector?
首先,道歉:我已经阅读了以前关于在VS中检查模板的一些线程(例如,这一个);不幸的是,它们要么没有包含我需要的信息,要么(更有可能)我无法成功地从答案中提取信息。我希望我没有问一些以前被问过很多次的太明显的问题。
我有一个包含SomeClass:类对象的向量
class SomeClass {
int a, b;
//constructor..
};
std::vector<SomeClass> vec;
//vec.push some elements..
现在我希望能够在VS2010调试器中观看vec[0].a,vec[1].a。当我天真地尝试这个时,我当然会得到:
vec[0].a CXX0058: Error: overloaded operator not found
当我尝试上面链接的问题的答案中提供的解决方案时,我得到:
((vec)._Myfirst)[0].a CXX0025: Error: operator needs class/struct/union
所以我知道我需要修改autoexp.dat。我尝试了一段时间,但没有成功。
如果有人能写下我需要添加到autoexp.dat中的行,以便能够检查这些变量,我将不胜感激(我已经觉得我在这方面花了太多时间,所以如果我能得到一个明确的解决方案,而不是提示或链接,我将非常感激)。
谢谢你抽出时间。
让SomeClass
定义如下:
class SomeClass
{
public:
SomeClass(int a, int b) : a(a), b(b) { }
int a, b;
};
你说你有"向量数组",但你只有类型为SomeClass
:的对象的向量
std::vector<SomeClass> vec;
SomeClass a(1,2);
vec.push_back(a);
std::cout << vec[0].a;
在这种情况下,您可以使用数组下标运算符([])直接访问它们。如果您确定在索引0处有对象,那么vec[0].a
就可以了。
如果你需要一个矢量数组,它看起来像这样:
std::vector<SomeClass> vec[10];
SomeClass a(1,2);
vec[3].push_back(a);
std::cout << vec[3][0].a;
您将vec
声明为一个由10个向量组成的数组,然后在4的末尾推送一个元素a
。矢量(在索引3处)。通过vec[3][0].a
,您正在访问索引3处向量的索引0处元素的属性a。
这两个例子的输出都是:1
用于调试:
在第二个例子中,当我在vec[3].push_back(a);
行切换断点时,我选择Debug
配置,然后按F5,当它停在我的断点时:
- 按Ctrl+D,Q
- 将
vec[7]
写入表达式字段 - 选择添加监视
- 看看Visual Studio在Watch 1窗口中的索引7处为您显示的矢量有多可爱
希望这能帮助
相关文章:
- 检查向量是否具有所有可能的字符组合
- 检查向量是否使用除法和阻抗算法进行排序
- C++:检查向量中的元素是否大于另一个具有相同索引的元素的有效方法?
- 检查向量中的重复项并计算它们 c++
- 检查向量是否在某个位置未初始化
- 如何检查向量是否包含指定索引中的特定字符
- 如何检查向量的第一个元素是否<string>是引号C++
- 如何检查向量中的空元素
- 检查向量中的一组值
- 检查向量C 中的常见成员
- 快速紧凑的方式来检查向量是否是二进制的
- C++检查向量a是否包括向量b的元素
- 在C++中检查向量项并添加到新向量中
- 检查向量的所有元素在C++中是否相等
- C++:读取数据集并检查向量是否<Class>是向量的<Class>子集
- 用于检查向量中任何数字组合是否加起来为 int 的函数
- 检查向量中是否已经存在该值
- 我需要在autoexp.dat中输入什么才能检查向量中包含的类的数据成员
- 检查向量less中的元素是否比其他向量中的元素多
- 如何在c++中优化检查向量中的元素