小编Ben*_*Ben的帖子

从向量中删除元素

下面的C++代码用一些对象填充一个向量,然后删除其中的一些对象,但看起来它删除了错误的对象:

vector<Photon>  photons;

photons = source->emitPhotons();    // fills vector with 300 Photon objects

for (int i=0; i<photons.size();  i++) {
    bool useless = false;

    // process photon, set useless to true for some

    // remove useless photons
    if (useless) {
        photons.erase(photons.begin()+i);
    }
}
Run Code Online (Sandbox Code Playgroud)

我这样做了吗?我在想这条线photons.erase(photons.begin()+i);可能是问题?

c++ vector

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

从std :: list中删除对象

在以下情况下,如何从列表中删除屏幕?

class ScreenManager {

    list<GameScreen> screens;

    void removeScreen(GameScreen & screen) {
        //screens.remove(screen); // won't work
        //screens.erase( remove( screens.begin(), screens.end(), screen ), screens.end() );  // won't work either
    }
}
Run Code Online (Sandbox Code Playgroud)

c++ list

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

Struct,Pointers中的数组[C++ Beginner]

来自Java,PHP背景,我试图进入C++.我想在一个结构中存储一个数组.我的问题是在初始化结构后指定数组的大小.

这是我的结构代码:

struct SpriteAnimation {
    // ...
    int parts;                  // total number of animation-parts
    unsigned int textures[];    // array to store all animation-parts
    // ...
};
Run Code Online (Sandbox Code Playgroud)

这里主要功能:

SpriteAnimation bg_anim;
bg_anim.parts = 3; 
unsigned int *myarray = new unsigned int[bg_anim.parts];
bg_anim.textures = myarray;
Run Code Online (Sandbox Code Playgroud)

我需要更改什么来解决这个问题?

c++ arrays struct pointers

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

删除指针

在C++中,推荐删除指针的方法是什么?例如,在下面的例子中,我是否需要所有三行来安全地删除指针(如果是这样,他们做了什么)?

// Create
MyClass* myObject;
myObject = new MyClass(myVarA, myVarB, myVarC);

// Use
// ...

// Delete
if(myObject) { 
    delete myObject; 
    myObject = NULL; 
}
Run Code Online (Sandbox Code Playgroud)

c++ pointers

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

接口的解决方法

在C++中,我如何声明一个接口,我可以使用它,如下所示:

/** Enemy "Interface" */
Class Enemy {
    Enemy();
    virtual ~Enemy();
    virtual void doStuff() = 0;
};

/** Enemy of type 1 */
Class Enemy_type1 : public Enemy {
    Enemy_type1();
    virtual ~Enemy_type1();
    virtual void doStuff() {
        // different for every type of enemy
    }
};

/** Add an enemy to EnemyManager */
void EnemyManager::addEnemy(Enemy * e) {
    this->enemies.push_back(*e); // declared as vector<Enemy> enemies;
}
Run Code Online (Sandbox Code Playgroud)

c++ inheritance interface

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

继承/多态 - 子类的调用方法

在下面,我怎样才能使程序使用draw方法MainMenuScreen而不是来自GameScreen

class GameScreen {
public:
    virtual void GameScreen::draw() {
        cout << "Drawing the wrong one..." << endl;
    }
};

class MainMenuScreen : public GameScreen {
public:
    void MainMenuScreen::draw() {
        cout << "Drawing the right one..." << endl;
    }
};

class ScreenManager {
public:
    list<GameScreen> screens;

    // assume a MainMenuScreen gets added to the list

    void ScreenManager::draw()
    {
        for ( list<GameScreen>::iterator screen = screens.begin(); 
              screen != screens.end(); screen++ )
        {
            screen->draw(); /* here it uses …
Run Code Online (Sandbox Code Playgroud)

c++ inheritance

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

标签 统计

c++ ×6

inheritance ×2

pointers ×2

arrays ×1

interface ×1

list ×1

struct ×1

vector ×1