📅  最后修改于: 2023-12-03 15:37:34.596000             🧑  作者: Mango
在C++ STL中,map
是一种关联容器,可以存储key
与相应的value
,并且这些键值对是按照键的大小进行排序的。在处理map
时,我们经常需要迭代器来遍历或者访问它的元素。cbegin()
和cend()
是两个STL函数,它们返回一个指向map
中的const
类型的iterator
对象,可以避免改变map
中的数据。
cbegin()
是一个STL函数,用于创建一个指向map
的const
类型的迭代器,该迭代器指向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()
是一个STL函数,用于创建一个指向map
的const
类型的迭代器,该迭代器指向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
时使代码更加可读、清晰和简洁。