c++ - 在数组中存储结构 (C++)

标签 c++ arrays struct

<分区>

我是 C++ 的新手,我遇到了在数组中存储结构的问题。我已经就此搜索过所有版 block ,但似乎没有人遇到我的具体问题。

我正在创建一个基于文本的角色扮演游戏,它需要一个动态的法术数组。咒语是结构,定义如下:-

struct spell
{
    std::string mSpellName;
    int mRequiredMagicPoints;
};

然后我创建并初始化该结构的两个实例:-

spell fireBall {"Fire Ball", 10};
spell magicMissile {"Magic Missile", 5};

然后,在 main() 中,我尝试将这两个实例存储在 vector 数组中:-

int main()
{
    std::vector<spell> mSpells[2];

    mSpells[0] = fireBall;
    mSpells[1] = magicMissile;
}

但是,Xcode 对我大喊并显示“没有可行的重载 '='”

我也尝试过将这些结构存储在传统的动态数组中,但它仍然无法编译。我做错了什么?

提前致谢!

最佳答案

std::vector<spell> mSpells[2];定义 vector 数组。看来您只想要一个包含两个元素的 vector 。所以你开始但只是定义一个 vector :

std::vector<spell> mSpells;

然后你有several options用于向其中添加元素:

mSpells.push_back(fireBall);
mSpells.emplace_back("Magic Missile", 5);

关于c++ - 在数组中存储结构 (C++),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40207988/

相关文章:

c++ - VS2010 - 单步黄色箭头处的蓝色小圆圈是什么?

c++ - MFC对话窗口不出现

python - 类型代码 'c' 不适用于 python 3.5 中的数组定义

c - fscanf 从文本文件到结构指针

xml - 从结构编码 xml

python - 如何在 Python 中将长整数写为二进制?

c++ - 为什么我的Qt5 QPixmap无法正确显示使用某些OpenCV算法处理的帧?

c++ - 为什么不能将 std::stol 转换为 std::function 对象?

javascript - 按键对数组进行分组

algorithm - 二维最大子数组