我想使两个不同的载体包含自定义结构,但是当我尝试向矢量添加元素时,它为“deck”向量工作,但抛出“players”向量的错误。我是C++新手,无法弄清楚什么是错的。C++多重结构载体错误
这些都是它抛出的错误:
warning: extended initializer lists only available with -std=c++11 or -std=gnu++11|
error: no matching function for call to 'std::vector<BlackjackClass::player>::push_back(<brace-enclosed initializer list>)'|
这是我使用的代码:
#include <iostream>
#include <string>
#include <vector>
using namespace std;
class BlackjackClass {
private:
struct card
{
string label;
int value;
string suit;
};
vector<card> deck;
struct player
{
string name;
int bankroll;
int default_bet = 5;
};
vector<player> players;
public:
BlackjackClass()
{
// Works
deck.push_back({"Queen", 10, "Hearts"});
// Doesn't Work
players.push_back({"Jim", 500, 5});
}
};
int main()
{
BlackjackClass Blackjack;
}
愚蠢的问题,但你使用-std = C++ 11吗? – desu
我打开了-std = C++ 11,并且摆脱了警告,但我仍然收到第二个错误。 –
@ Karl-scmaltz您是否尝试过创建卡片对象然后push_back? – desu