我正在开发一个c ++字典,我制作了一个搜索单词的函数图。
程序提示用户选择"搜索单词"或者"添加一个新单词"。
问题: 我创建了一个函数映射,如果用户选择搜索一个单词,它将被调用,但程序似乎没有调用该函数。
我是map
的新手并且在今天之前没有使用它,一些帮助会很棒。
#include <iostream>
#include <map>
using namespace std;
//map of function to search for word
map <string, int> search_word(map<string, int> &word_bank, int val)
{
string word;
cout<<"Search word: "<<endl;
cin>>word;
if(word_bank.find(word) != word_bank.end())
cout<<word<<endl;
else if (word_bank.find(word) == word_bank.end())
cout<<"word not found";
}
int main()
{
int choice;
map <string, int> word_bank;
word_bank["diingati"] = 0;
word_bank["diperbuat"] = 1;
word_bank["keibuan"] = 2;
word_bank["kepercayaan"] = 3;
word_bank["menggunakan"] = 4;
word_bank["mempergunakan"] = 5;
cout<<"***"<<" Welcome to C++ Malay Dictionary "<<"***"<<endl<<endl;
cout<<"Do you want to search for a word or enter a new word? "<<endl<<endl;
cout<<"Search : 1"<<endl<<"Enter new word: 2"<<endl<<endl;
cin>>choice;
if (choice == 1)
map <string, int> search_word; //calling the function
else
cout<<"Please enter a number: ";
cin>>choice;
}
答案 0 :(得分:0)
map <string, int> search_word; //calling the function
评论错误。这不会调用该函数;它声明了一个名为search_word
std::map<std::string, int>
的变量。
旁白:
将警告调高至最大值 - 您应该收到search_word
实际上没有返回任何内容的警告。您还会收到一条警告,指出您声明的名为search_word
的变量未使用。
想想你想要search_word
实际返回的内容 - 地图似乎并不是非常有用。 bool
或甚至void
会更好。
搜索并阅读Eric Lippert发布的名为&#34;如何调试小程序&#34;。