📜  在C++ STL中映射equal_range()

📅  最后修改于: 2021-05-30 10:58:59             🧑  作者: Mango

map :: equal_range()是C++ STL中的内置函数,它返回一对迭代器。该对是指范围的边界,该范围包括容器中所有具有等于k的键的元素。由于映射容器仅包含唯一键,因此返回的对中的第一个迭代器因此指向元素,而对中的第二个迭代器则指向在键K之后的下一个键。 key K大于最大key,返回的范围的长度为1,两个迭代器均指向一个元素,该元素的键表示map和elements的大小为0。否则,下界和上界仅指向该元素大于密钥K。
句法:

iterator map_name.equal_range(key)

参数:此函数接受单个强制性参数,该指定要返回其在容器中的范围的元素。
返回值:该函数返回一对迭代器,如上所述。
下面的程序说明了上述方法:
程序1:

CPP
// C++ program to illustrate the
// map::equal_range() function
#include 
using namespace std;
 
int main()
{
 
    // initialize container
    map mp;
 
    // insert elements in random order
    mp.insert({ 4, 30 });
    mp.insert({ 1, 40 });
    mp.insert({ 6, 60 });
 
    pair::iterator,
         map::iterator>
        it;
 
    // iterator of pairs
    it = mp.equal_range(1);
    cout << "The lower bound is "
         << it.first->first
         << ":" << it.first->second;
 
    cout << "\nThe upper bound is "
         << it.second->first
         << ":" << it.second->second;
 
    return 0;
}


CPP
// C++ program to illustrate the
// map::equal_range() function
#include 
using namespace std;
 
int main()
{
 
    // initialize container
    map mp;
 
    // insert elements in random order
    mp.insert({ 4, 30 });
    mp.insert({ 1, 40 });
    mp.insert({ 6, 60 });
 
    pair::iterator,
         map::iterator>
        it;
 
    // iterator of pairs
    it = mp.equal_range(10);
    cout << "The lower bound is "
         << it.first->first << ":"
         << it.first->second;
 
    cout << "\nThe upper bound is "
         << it.second->first
         << ":" << it.second->second;
 
    return 0;
}


输出:
The lower bound is 1:40
The upper bound is 4:30

程式2:

CPP

// C++ program to illustrate the
// map::equal_range() function
#include 
using namespace std;
 
int main()
{
 
    // initialize container
    map mp;
 
    // insert elements in random order
    mp.insert({ 4, 30 });
    mp.insert({ 1, 40 });
    mp.insert({ 6, 60 });
 
    pair::iterator,
         map::iterator>
        it;
 
    // iterator of pairs
    it = mp.equal_range(10);
    cout << "The lower bound is "
         << it.first->first << ":"
         << it.first->second;
 
    cout << "\nThe upper bound is "
         << it.second->first
         << ":" << it.second->second;
 
    return 0;
}
输出:
The lower bound is 3:0
The upper bound is 3:0
要从最佳影片策划和实践问题去学习,检查了C++基础课程为基础,以先进的C++和C++ STL课程基础加上STL。要完成从学习语言到DS Algo等的更多准备工作,请参阅“完整面试准备课程”