小编Mag*_*xis的帖子

有没有更优雅/聪明/简短的方法来使未知数字接近0?

基本上我正在研究物理游戏.需要减少侧向运动(如接近0,而不是变为负值),但我不知道它在哪个方向,所以我不知道是添加阻力还是减去阻力.

(如果物品向右移动,则具有正向力,向左移动,负向力)

现在我这样做:

if (objects[i]->force.x > 0)
    objects[i]->force.x -= drag;
else
    objects[i]->force.x += drag;
Run Code Online (Sandbox Code Playgroud)

哪个工作正常,但我觉得必须有一个更时尚的方式来做到这一点.

找到一种确保它不会超过0的方法也不会有什么坏处

c++ math reduction simplification

3
推荐指数
1
解决办法
793
查看次数

Vector:clear/pop_back不会运行析构函数

我有一个"Pictureframe"的矢量(pflist),我想要销毁所有这些.所以我运行pflist.clear(); 文档说这会运行向量中每个项目的析构函数,但事实并非如此!

我有一个:

vector<Pictureframe*> pflist;
Run Code Online (Sandbox Code Playgroud)

剩下的就是:

class Pictureframe{
    scene::IMeshSceneNode *picture;
    scene::IMeshSceneNode *frame;

public:
    Pictureframe();
    ~Pictureframe();
};
Run Code Online (Sandbox Code Playgroud)

然后在cpp文件中:

Pictureframe::~Pictureframe(){
//  delete picture;
//  delete frame;
    cout<<"Destructor Called.\n\n";
}
Run Code Online (Sandbox Code Playgroud)

在视线中没有"被叫的破坏者"!这就是我所说的:

pflist.clear();
Run Code Online (Sandbox Code Playgroud)

我确信这条线正在运行,并且由5个相框组成.我还尝试了一个通过矢量pop_back'ing的for循环,这也有同样的问题.

所以Destructor,YU NO CALL?

c++ destructor vector irrlicht

2
推荐指数
1
解决办法
7009
查看次数

为什么我的单个字符长度超过一个字符?

我正在尝试创建char*一个字符串的第一个字符.字符串保持在字符串向量内.

我尝试过以下方法:

char* value = &cards[0][0]; cout<<"Value "<<i<<" == "<<value<<endl;

char* value = &cards[0].front(); cout<<"Value "<<i<<" == "<<value<<endl;

('cards'是一个字符串向量,每个字符串是常规52卡片组中的一张卡片)

但无论我做什么,总是等于整个字符串.

我如何使价值成为一个字母?

c++ string vector char

0
推荐指数
1
解决办法
194
查看次数

标签 统计

c++ ×3

vector ×2

char ×1

destructor ×1

irrlicht ×1

math ×1

reduction ×1

simplification ×1

string ×1