我有一个std::vector
,其中包含一些对象。我如何使用内存地址(我是否想为此目的使用this
指针?)来检查我是否对同一个对象做了什么?
例如:
void particle::calcFrc(std::vector<particle>& particles)
{
vector3d tRel;
mFrc.reset();
for(unsigned int j = 0; j < particles.size(); j ++){
if(... what goes here? ...){
tRel = particles.at(j).mPos - mPos;
if(tRel != zero()){
// do stuff
}
}
}
}
我想检查if
语句,看看particles.at(j)
是否指的是调用此方法的同一对象。
答案 0 :(得分:0)
if(... what goes here? ...){
我认为你在寻找的是:
if (this != &particles[j]) {
...并且测试将正常工作,假设此对象实际上是传递给方法的向量中的一个对象(而不仅仅是其中一个的临时副本)。