私は次のコードを使用して、カードのデッキを生成しています。 まず、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;
}
ブレースされた初期化リストの最初の値は整数で、2番目の値は文字列です。あなた自身のバグが見えるまで、 'Card'クラスを見つめてください。 –
ありがとう、私はそれらを切り替えていたと思ったが、私はそう思わない –