在C++ STL中的unordered_map cbegin函数

在C++ STL中的unordered_map cbegin函数

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

语法:

unordered_map.cbegin()

参数 :它需要一个可选参数N。如果设定了,返回的迭代器将指向桶中的第一个元素,否则将指向容器中的第一个元素。

返回值 :指向无序映射中第一个元素的常量迭代器。

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

// CPP程序演示unordered_map中cbegin函数的实现
#include <bits/stdc++.h>
using namespace std;
  
int main()
{
    unordered_map<string, int> mp;
  
    // 添加一些元素到unordered_map中
    mp["g"] = 1;
    mp["e"] = 2;
    mp["k"] = 4;
    mp["s"] = 5;
  
    cout << "无序映射的内容:\n";
    for (auto it = mp.cbegin(); it != mp.cend(); it++)
        cout << it->first << "==>>"
             << it->second << "\n";
}
无序映射的内容:
s==>>5
k==>>4
g==>>1
e==>>2

cbegin()函数返回一个常量迭代器。如果我们试图更改值,我们会得到编译器错误。

// CPP程序演示unordered_map中cbegin函数的实现
#include <bits/stdc++.h>
using namespace std;
  
int main()
{
    unordered_map<string, int> mp;
  
    // 添加一些元素到unordered_map中
    mp["g"] = 1;
    mp["e"] = 2;
    mp["k"] = 4;
    mp["s"] = 5;
  
    cout << "无序映射的内容:\n";
    for (auto it = mp.cbegin(); it != mp.cend(); it++)
        it->second = 10; // 这会导致编译器错误
}

输出:


prog.cpp:在函数'main'中: prog.cpp:18:20:错误:在只读对象中分配成员'std :: pair ,int> :: second'          it->second = 10; // 这会导致编译器错误                 ^

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

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

C++ 教程