我有以下代碼,在那裏我正在生成一副撲克牌。 首先,我使用函數convertIntToSuit確定西裝,然後進入下一個循環以填充卡片組。不過,我不斷收到以下錯誤:使用push_back與結構數據類型C++時收到錯誤
Running /home/ubuntu/workspace/A5/Assignment5/main.cpp
make: Entering directory `/home/ubuntu/workspace/A5/Assignment5'
Compiling main.o
g++ -Wall -g -O3 -std=c++11 -I/usr/include -c -o main.o main.cpp
main.cpp: In function ‘int main()’:
main.cpp:39:33: error: no matching function for call to ‘std::vector<Card>::push_back(<brace-enclosed initializer list>)’
deck.push_back({i,s});
這裏是我的代碼:
// The include section adds extra definitions from the C++ standard library.
#include <iostream> // For cin, cout, etc.
#include <iomanip> // For text formatting (setprecision, setw, etc.)
#include <cmath> // For math functions (sin, cos, pow, etc.)
#include <cstdlib>
#include <vector>
#include <string>
#include"convertIntToSuit.h"
#include"printCard.h"
//#include"shuffleDeck.h"
using namespace std;
struct Card {
string suit;
int rank;
};
int main() {
vector<Card> deck;
for(int j = 0; j<4; ++j){
string s = convertIntToSuit(j);
for(int i=1; i<=13; ++i){
deck.push_back({i,s});
}
}
return 0;
}
支撐初始化列表中的第一個值是一個整數,第二個值是一個字符串。現在繼續盯着你的'Card'類,直到你看到你自己的錯誤。 –
謝謝,我以爲我已經切換了這些,但我猜不是 –