📜  在C++ STL中映射crbegin()和crend()函数

📅  最后修改于: 2021-05-30 20:11:56             🧑  作者: Mango

  1. map :: crbegin()是C++ STL中的内置函数,它返回一个恒定的反向迭代器,该迭代器引用映射容器中的最后一个元素。由于地图容器包含有序元素,因此crbegin()将指向根据容器的排序标准排在最后的元素。

    句法:

    map_name.crbegin()
    

    参数:该函数不接受任何参数。

    返回值:该函数返回一个常量反向迭代器,该迭代器引用映射容器中的最后一个元素。

    // C++ program to illustrate
    // map::crbegin() function
    #include 
    using namespace std;
      
    int main()
    {
      
        // initialize container
        map mp;
      
        // insert elements in random order
        mp.insert({ 2, 30 });
        mp.insert({ 1, 40 });
        mp.insert({ 3, 60 });
        mp.insert({ 4, 20 });
        mp.insert({ 5, 50 });
      
        auto ite = mp.crbegin();
        cout << "The last element is {" << ite->first
             << ", " << ite->second << "}\n";
      
        // prints the elements
        cout << "\nThe map in reverse order is: \n";
        cout << "KEY\tELEMENT\n";
        for (auto itr = mp.crbegin(); itr != mp.crend(); ++itr) {
            cout << itr->first
                 << '\t' << itr->second << '\n';
        }
        return 0;
    }
    
    输出:
    The last element is {5, 50}
    
    The map in reverse order is: 
    KEY    ELEMENT
    5    50
    4    20
    3    60
    2    30
    1    40
    
  2. map :: crend()是C++ STL中的内置函数,它返回一个常数反向迭代器,该迭代器指向理论元素(在映射中的第一个元素之前)。由于地图容器按有序方式包含元素,因此根据容器的排序标准,crend()理论上将指向第一个元素之前的元素。

    句法:

    map_name.crend()
    

    参数:该函数不接受任何参数。

    返回值:该函数返回一个常数反向迭代器,该迭代器指向映射中第一个元素之前的理论元素。

    // C++ program to illustrate 
    // map::crend() function
    #include 
    using namespace std;
      
    int main()
    {
      
        // initialize container
        map mp;
      
        // insert elements in random order
        mp.insert({ 2, 30 });
        mp.insert({ 1, 40 });
        mp.insert({ 3, 60 });
        mp.insert({ 4, 20 });
        mp.insert({ 5, 50 });
      
        // prints the elements
        cout << "\nThe map in reverse order is : \n";
        cout << "KEY\tELEMENT\n";
        for (auto itr = mp.crbegin(); itr != mp.crend(); ++itr) {
            cout << itr->first
                 << '\t' << itr->second << '\n';
        }
        return 0;
    }
    
    输出:
    The map in reverse order is : 
    KEY    ELEMENT
    5    50
    4    20
    3    60
    2    30
    1    40
    
要从最佳影片策划和实践问题去学习,检查了C++基础课程为基础,以先进的C++和C++ STL课程基础加上STL。要完成从学习语言到DS Algo等的更多准备工作,请参阅“完整面试准备课程”