0

我没有收到任何错误消息,只是我的向量没有填充。查看观察列表中的向量,没有任何内容被复制。为什么是这样?我试过两种方法。首先

std::vector<Point3D*>   hitpoints;
local_hit_point = sr.local_hit_point; //local_hit_point class Point3D 
hitpoints.push_back(local_hit_point);

我尝试使用指针的第二种方式

std::vector<Point3D*>   hitpoints; 
Point3D* hittingpoint_ptr = new Point3D;
local_hit_point = sr.local_hit_point;
hittingpoint_ptr = &local_hit_point;
hitpoints.push_back(hittingpoint_ptr);

我在我的代码中的其他地方得到了向量,这些向量有效。我真的只是愚蠢,但我似乎无法弄清楚为什么它不起作用。

4

2 回答 2

0

我最好的猜测是你的调试器有问题..

第一个建议;

  • 清除监视列表中的所有内容,因为他们可以更改执行的行为再次检查它..

第二个建议;

  • 创建一个新项目并像上面那样编写一个简单的代码,看看你的向量是否正在填充。如果这个简单的项目有效,你应该向我们提供更多的代码和细节。
于 2012-04-07T12:43:11.650 回答
0

只是我的向量没有填充。

它正在人口中。然而

查看观察列表中的向量...我使用了 hitpoint.size()

函数/方法调用的结果(size() 是一种方法)不会在 Visual Studio 监视列表中自动更新(因为你没有告诉你使用什么操作系统/编译器,我不得不假设它是 Visual Studio)。即如果您将函数调用输入到监视列表中,它将计算结果,但在您手动刷新之前不会再次调用函数。代替函数调用,将向量本身添加到监视列表中。

于 2012-04-07T12:52:23.323 回答