所以我想製作一個粒子系統,我需要創建一些粒子對象並將它們存儲在一個向量中以便以後使用它們。 ,做的是功能是:創建一個對象並將其存儲在向量中可以產生值
void spawnLoop(std::vector<Particle*> &particleVector){
for (int i=0; i < 5; i++) {
particleVector.emplace_back(new Particle(400.0, 400.0, 1.0, 1.0));
}
}
顆粒類的構造函數如下:
Particle::Particle(float xPos= 400,float yPos= 400,float xVel= 0,float yVel= 0) {
float xPosition = xPos;
float yPosition = yPos;
float xVelocity = xVel;
float yVelocity = yVel;
bool dead = false;
std::cout<< "We have " << xPosition << " "<< yPosition << " "<< xVelocity << " "<< yVelocity << std::endl;
//This prints the values and they look correct
}
但是,如果我試圖遍歷準確後,我完成存儲它的載體,它給了我值爲:1.81063e + 13。 我確實試圖研究它很多,但找不到任何解決方案。 編輯:
void loopOver(std::vector<Particle*> const vec){
for (auto i = vec.begin(); i != vec.end(); i++){
std::cout << "avem " << (*i)->getXPos() << " " << (*i)->getYPos() << std::endl;
}
}
它沒有發生在你身上它可能是後來的循環是這個問題? – StoryTeller
我必須質疑'std :: vector'的用法 - 它應該是非指針'std :: vector '或使用智能指針,例如:'std :: vector >'' –
UnholySheep
爲什麼你需要在該向量中存儲指針,你不能簡單地在那裏存儲普通的'粒子'實例嗎? – user0042