📜  在C++ STL中映射cbegin()和cend()函数(1)

📅  最后修改于: 2023-12-03 15:37:34.596000             🧑  作者: Mango

在C++ STL中映射cbegin()和cend()函数

在C++ STL中,map是一种关联容器,可以存储key与相应的value,并且这些键值对是按照键的大小进行排序的。在处理map时,我们经常需要迭代器来遍历或者访问它的元素。cbegin()cend()是两个STL函数,它们返回一个指向map中的const类型的iterator对象,可以避免改变map中的数据。

cbegin()函数

cbegin()是一个STL函数,用于创建一个指向mapconst类型的迭代器,该迭代器指向map的第一个元素。这个函数的语法如下:

map_name.cbegin()

在这个函数中,map_name代表一个map的名称。下面是一个简单地演示如何使用cbegin()函数:

#include <iostream>
#include <map>

int main() {
  std::map<std::string, int> myMap {
    {"Alpha", 1},
    {"Beta", 2},
    {"Gamma", 3},
    {"Delta", 4}
  };
  
  auto itr = myMap.cbegin();

  while(itr != myMap.cend()) {
    std::cout << itr->first << " " << itr->second << std::endl;
    itr++;
  }

  return 0;
}

在上面的例子中,我们创建一个map对象,并使用cbegin()函数来创建一个指向map中第一个元素的const类型的迭代器。然后我们使用while循环来从map中遍历每个元素,并输出它们的键和值。

cend()函数

cend()是一个STL函数,用于创建一个指向mapconst类型的迭代器,该迭代器指向map的最后一个元素的下一个元素。这个函数的语法如下:

map_name.cend()

下面是一个简单的例子,演示了cend()函数的使用:

#include <iostream>
#include <map>

int main() {
  std::map<std::string, int> myMap {
    {"Alpha", 1},
    {"Beta", 2},
    {"Gamma", 3},
    {"Delta", 4}
  };
  
  auto itr = myMap.cbegin();

  while(itr != myMap.cend()) {
    std::cout << itr->first << " " << itr->second << std::endl;
    itr++;
  }

  return 0;
}

我们在这个例子中使用cend()函数来创建一个指向map中最后一个元素的下一个元素的const类型的迭代器。然后我们使用while循环来从map中遍历每个元素,并输出它们的键和值。

总结

cbegin()cend()是一对非常方便的STL函数,可用于遍历map中的元素并访问其值。通过使用这些函数,我们可以确保不改变元素的值。通过cbegin()cend()函数,我们可以在读取map时使代码更加可读、清晰和简洁。