📜  C++ STL中的unordered_map cbegin

📅  最后修改于: 2021-05-30 05:39:23             🧑  作者: Mango

C++中的cbegin函数用于返回一个常量迭代器,该迭代器指向无序映射中的第一个元素。

句法:

unordered_map.cbegin()

参数:它带有一个可选参数N。如果设置,返回的迭代器将指向存储桶的第一个元素,否则将指向容器的第一个元素。

返回值:一个常量迭代器,它指向unordered_map的第一个元素。

下面的程序说明了cbegin函数的工作方式:

// CPP program to demonstrate implementation of
// cbegin function in unordered_map
#include 
using namespace std;
  
int main()
{
    unordered_map mp;
  
    // Adding some elements in the unordered_map
    mp["g"] = 1;
    mp["e"] = 2;
    mp["k"] = 4;
    mp["s"] = 5;
  
    cout << "Contents of the unordered_map :\n";
    for (auto it = mp.cbegin(); it != mp.cend(); it++)
        cout << it->first << "==>>"
             << it->second << "\n";
}
输出:
Contents of the unordered_map :
s==>>5
k==>>4
g==>>1
e==>>2

cbegin()函数返回一个常量迭代器。如果尝试更改值,则会出现编译器错误。

// CPP program to demonstrate implementation of
// cbegin function in unordered_map
#include 
using namespace std;
  
int main()
{
    unordered_map mp;
  
    // Adding some elements in the unordered_map
    mp["g"] = 1;
    mp["e"] = 2;
    mp["k"] = 4;
    mp["s"] = 5;
  
    cout << "Contents of the unordered_map :\n";
    for (auto it = mp.cbegin(); it != mp.cend(); it++)
        it->second = 10; // This would cause compiler error
}

输出 :

prog.cpp: In function 'int main()':
prog.cpp:18:20: error: assignment of member 'std::pair, int>::second' in read-only object
         it->second = 10; // This would cause compiler error
                    ^

时间复杂度:平均O(1)。

要从最佳影片策划和实践问题去学习,检查了C++基础课程为基础,以先进的C++和C++ STL课程基础加上STL。要完成从学习语言到DS Algo等的更多准备工作,请参阅“完整面试准备课程”