在数组中存储struct(C++)

Dan*_*cer 3 c++ arrays struct

我对C++很新,我遇到了将结构存储在数组中的问题.我已经在这个板上搜索过,但似乎没有人有我的具体问题.

我正在创建一个基于文本的RPG游戏,需要一系列动态法术.法术是结构,定义如下: -

struct spell
{
    std::string mSpellName;
    int mRequiredMagicPoints;
};
Run Code Online (Sandbox Code Playgroud)

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

spell fireBall {"Fire Ball", 10};
spell magicMissile {"Magic Missile", 5};
Run Code Online (Sandbox Code Playgroud)

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

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

    mSpells[0] = fireBall;
    mSpells[1] = magicMissile;
}
Run Code Online (Sandbox Code Playgroud)

但是,Xcode对我大喊大叫并且写着"没有可行的重载'='"

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

提前致谢!

Sto*_*ica 5

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

std::vector<spell> mSpells;
Run Code Online (Sandbox Code Playgroud)

然后你有几个选项可以添加元素:

mSpells.push_back(fireBall);
mSpells.emplace_back("Magic Missile", 5);
Run Code Online (Sandbox Code Playgroud)