小编Hab*_*bit的帖子

如何根据宽度和高度调整对象的2D矢量大小?

我的类GameBoard有一个成员变量,它是该类对象的2D向量Tile.所述GameBoard构造函数采用的宽度和高度作为参数.

如何Tile根据传递给构造函数的宽度和高度来获取对象的2D向量?如何填充Tile物体以便我可以做这样的事情?

myVector[i][j].getDisplayChar();
Run Code Online (Sandbox Code Playgroud)

片段

m_vvTiles.resize(iHeight);

for(auto it = m_vvTiles.begin(); it != m_vvTiles.end(); it++ ){

    (*it).resize(iWidth,Tile(' '));
}
Run Code Online (Sandbox Code Playgroud)

c++ resize vector multidimensional-array c++11

12
推荐指数
3
解决办法
4万
查看次数

如何在C++中删除与typeid().name()关联的数字?

我有一个工厂方法类,它生成"Items"并返回指向它创建的Item的指针.

我已经派生了Item类.例如,物品可以是"武器""消耗品"或"装甲".

我需要检测创建了哪种类型的Item,以便我可以将Item正确地转换为该类型.我做了一些测试线,看起来它正在做我想要的,除了添加与该类型相关的数字.

例:

我有这条线:

cout << "Type Created: " << typeid(pItem).name() << endl;
Run Code Online (Sandbox Code Playgroud)

返回基类Item,但会显示:"4Item"

然后我改为:

cout << "Type Created: " << typeid(*pItem).name() << endl;
Run Code Online (Sandbox Code Playgroud)

哪个会给我正确的派生类型,但也会输入这个数字.所以我得到像"5Armor"这样的东西

为什么pItem返回基类?为什么它返回类型的int?我怎样才能删除int?

一个做我想要的解决方案 - 以"欺骗"的方式:

            string type;
            string returnedType = typeid(*pItem1).name();
            for (int i=1; i < returnedType.length(); i++){
                    type.push_back(returnedType[i]);
            }
            cout << "type: " << type << endl;
Run Code Online (Sandbox Code Playgroud)

谢谢

c++ casting typeid

7
推荐指数
3
解决办法
2377
查看次数

在MIPS / SPIM中,li和lw有什么区别?

在意识到我对汇编语言和使用MIPS的迷茫之后,我决定从基础开始并真正理解它。

显然,MIPS代码具有特定的用途,但是许多内容似乎都具有相似的作用,并且我很难理解其中的一些区别。

加载立即..(li)和加载单词..(lw)有什么区别?我什至不知道什么是“单词”。或以下内容:

li $t0,y
lw $t0,0($t0)
Run Code Online (Sandbox Code Playgroud)

它是否将y加载到第一行的寄存器$ t0中?然后加载0($ t0)作为y?

抱歉,这可能是一个非常愚蠢的问题。如果有人能解释这两行在做什么以及li / lw之间的区别,我将不胜感激。谢谢!

assembly mips

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

应该使用哪种排序算法在O(n)中运行?

我正在努力弄清楚哪些算法最适合某些规格使用.

这是提示:

写一个算法来排序n个整数,每个整数在O(n)时间范围内[0 ..((n ^ 4)-1)].

我更像是一个视觉学习者,并通过实例最好地理解.我为此设计了值以使其可视化,但我不知道使用什么排序方法或如何确定使用哪种方法.任何提示或建议都非常感谢.谢谢!

sorting algorithm big-o

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

如何将指向对象的指针设置为 Null?C++

我正在开发一款 Roguelike 游戏,我将其设置为一个关卡上最多有 3 个怪物。所以我对怪物有3个指示。它们都是从 NULL 开始的。

怪物死后,我应该如何将指针设置回 NULL?或者也许我有错误的想法?本质上,我需要删除怪物,直到该指针重新生成为另一个怪物。

我已经尝试了一些方法,但我总是遇到段错误。

我尝试使用擦除、删除,只需将其设置为 NULL,然后重新指向它。想不通。

这是我设置指针的方法:

CreatureFactory myCreatures = CreatureFactory::instance();
    Creature * pCreature1 = NULL;
    Creature * pCreature2 = NULL;
    Creature * pCreature3 = NULL;;

    ItemFactory myItems = ItemFactory::instance();
    Item * pItem1 = myItems.generateItem();

    dl.placeInGame(personPlaying,randomGen);
    int monsterCount = 0;
    int turnCount = 0;
    bool playingGame = true;
    char playerController;

    while (playingGame){
            if ((turnCount % 2 == 0) && (personPlaying.getHP() < personPlay$
                    personPlaying.generateHP();
            }
            if (((turnCount % 3) == 0) && (monsterCount < 2)){ …
Run Code Online (Sandbox Code Playgroud)

c++ null pointers segmentation-fault

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