调用C 字典的功能图

Calling map of function for c++ dictionary

本文关键字:功能 字典 调用      更新时间:2023-10-16

我正在开发一个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;
}
 map <string, int> search_word; //calling the function

评论是错误的。这不调用该功能;它声明一个称为std::map<std::string, int>类型search_word的变量。


Aside:

  • 将您的警告调整为最大 - 您应该警告search_word实际上不会返回任何内容。您还会警告说您声明的变量称为search_word

  • 考虑一下您希望search_word实际返回的内容 - 地图似乎不是很有用。bool甚至void都会更好。

  • 搜索并阅读,埃里克·利普特(Eric Lippert(的帖子称为"如何调试小程序"。