stl对和二进制搜索

Otn*_*cea 0 c++ stl

我想制作一个字典程序,我的字典是用对实现的.我想在我的数组中搜索一个术语,并使用stl函数返回所有这些的描述.我做的:

#include<iostream> 
#include<fstream>
#include<algorithm>
#include<string.h>
using namespace std;

bool compare(pair<string,string>a,pair<string,string>b) {
    return a.first<b.first;
}

int main() {
    pair<string,string> a[100]=pair<string,string>();
    int dimension=0;
    ifstream f("dictionar.in");
    string name,description;
    while(f>>name) {
        getline(f,description);
        a[dimension]=make_pair(name,description);
        dimension++;
    }
    for(int i=0;i<dimension;i++)
        cout<<a[i].first<<" "<<a[i].second<<endl;

    sort(a,a+dimension,compare);
    cout<<endl;

    for(int i=0;i<dimension;i++)
        cout<<a[i].first<<" "<<a[i].second<<endl;
    string searchelem;

    cin>>searchelem;
}
Run Code Online (Sandbox Code Playgroud)

我想使用'searchelement'来查找对数组中是否存在与searchelement相等的元素以及是否返回索引.我应该使用什么功能?

Tho*_*ews 5

使用std::map.地图通常被称为关联数组字典.

您可能想要分解键和值并使用trie数据结构.该特里结构允许更有效的查找(由字长度).