Vector_push后面没有填充向量(c ++)

时间:2012-04-07 12:00:33

标签: c++ vector push-back

我没有收到任何错误消息,只是我的矢量没有填充。查看监视列表中的向量,不会复制任何内容。为什么是这样? 我试过两种方法。 第一个

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);

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

2 个答案:

答案 0 :(得分:0)

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

第一个建议;

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

第二个建议;

  • 创建一个新项目并编写一个简单的代码,如上图所示,看看你的矢量是否正在填充。如果这个简单的项目有效,你应该为我们提供更多的代码和细节..

答案 1 :(得分:0)

  

只是我的矢量没有填充。

它正在填充。然而

  

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

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