トピックで書いたように - マップの最初の引数にsf :: Stringを入れようとしましたが動作しません。sf :: std :: map keyに入れた文字列が機能しません - vauleはマップに保存されません
void Flashcards::add(sf::String sf_string) {
std::string text = sf_string.toAnsiString();
std::pair<std::string,std::string> pairr = std::make_pair(text,"<Polish translation>");
std::cout << "Inserting: " << pairr.first << std::endl;
all_words.insert(pairr); //std::map<std::string, std::string> variable
void Flashcards::show() {
std::cout << "Flashcards:\n";
for (std::map<std::string, std::string>::iterator it = all_words.begin(); it != all_words.end(); it++)
{
std::cout << "English word: " << it->first
<< " " << "Polish word: " << it->second << std::endl;
}
コンソールでの結果は次のとおりです:代わりに必要なの
Inserting: //a word//
Flashcards:
Polish word: <Polish translation>
:
Inserting: hello
Flashcards:
English word: //a word// Polish word: <Polish translation>
ここ
私はすでに試してみましたバリエーションです:ここでは、コードです
1)私は議論を次のように変更しました:std::make_pair("<Polish translation>",text);
とそれは動作します - ハードコーディングされたキーと値aどちらもコンソールに表示されます(ただし、ハードコーディングは必要ありませんが、明白です)。
2)この行:std::cout << "Inserting: " << pairr.first << std::endl;
は、キー値がstd :: stringに正しく変換されていることを示しています。これを呼び出すと、キーボードで入力したばかりの値が表示されます。
3)sf :: string値をstd :: make_pair()メソッドに直接送信しようとしましたが、これはstd :: stringを置くのとまったく同じです。
誰かがこの作品を作る方法を言うことができますか?
このコードはコンパイルされません。 –