在我的代码中,我有一个STL向量,它保存指向对象的指针。我这样编码的原因是因为我必须从不同的地方操作对象本身。
std::vector<Object*> objects;
for (int i = 0; i < 10; i++) {
Object* o = new Object(i);
objects.push_back(o);
}
这段代码假设Object是一个接受一个整数作为构造函数参数的对象。假设我在for循环结束后用我的GDB断点,我需要做什么才能轻松地查看我的vector中的对象?
当我做“p对象”时,它只列出了指针地址,这是完全预期的,但我想看到每个对象所持有的整数变量。我尝试了“p对象[0]”,但这返回“无法找到运算符[]”。
有没有人遇到过这个问题?或者知道我如何解决这个问题?我的目标是能够从GDB中查看对象的指针存储在STL向量中时实际持有的对象。
2条答案
按热度按时间cyvaqqii1#
这当然是实现定义的,但对于GCC,你可以做:
其中
v
是指向量,1
是指索引。您需要解引用两次以获得值。我们的测试运行:
gywdnpxw2#
下面是一个函数,它一个接一个地打印值:
用作
pv my_vec