我想使兩個不同的載體包含自定義結構,但是當我嘗試向矢量添加元素時,它爲「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