在C++的STL中使用multimap::cbegin()和multimap::cend()
multimap::cbegin() 是一个C++ STL中的内置函数,它返回一个指向multimap容器中第一个元素的常量迭代器。由于multimap容器中的元素是按一定顺序排列的,cbegin()将指向按照容器排序标准排名第一个的元素。
语法:
multimap_name.cbegin()
参数: 该函数不接受任何参数。
返回值: 该函数返回一个指向multimap容器中第一个元素的常量迭代器。
// C++程序演示
//multimap::cbegin()函数
#include
using namespace std;
int main()
{
// 初始化容器
multimap mp;
// 以随机顺序插入元素
mp.insert({ 2, 30 });
mp.insert({ 1, 40 });
mp.insert({ 3, 60 });
mp.insert({ 4, 20 });
mp.insert({ 5, 50 });
auto ite = mp.cbegin();
cout << "第一个元素是:";
cout << "{" << ite->first << ", "
<< ite->second << "}\n";
//输出元素
cout << "\nmultimap是:\n";
cout << "键 元素\n";
for (auto itr = mp.cbegin(); itr != mp.cend(); ++itr) {
cout << itr->first
<< '\t' << itr->second << '\n';
}
return 0;
}
输出结果:
第一个元素是: {1, 40}
multimap是:
键 元素
1 40
2 30
3 60
4 20
5 50
multimap::cend() 是C++ STL中的一个内置函数,它返回一个指向multimap中最后一个元素后面理论上存在的元素的常量迭代器。由于multimap容器中的元素是按一定顺序排列的,cend()将指向按照容器排序标准排名最后一个元素的后续元素。
语法:
multimap_name.cend()
参数: 该函数不接受任何参数。
返回值: 该函数返回一个指向multimap中最后一个元素后面理论上存在的元素的常量迭代器。
// C++程序演示
// multimap::cend()函数
#include
using namespace std;
int main()
{
// 初始化容器
multimap mp;
// 以随机顺序插入元素
mp.insert({ 2, 30 });
mp.insert({ 1, 40 });
mp.insert({ 3, 60 });
mp.insert({ 4, 20 });
mp.insert({ 5, 50 });
// 输出元素
cout << "\nmultimap是:\n";
cout << "键 元素\n";
for (auto itr = mp.cbegin(); itr != mp.cend(); ++itr) {
cout << itr->first
<< '\t' << itr->second << '\n';
}
return 0;
}
输出结果:
multimap是:
键 元素
1 40
2 30
3 60
4 20
5 50
现在我们看一下它们之间的差异:
ID | multimap::cbegin() | multimap::cend() |
---|---|---|
1. | 它用于返回指向容器中第一个元素的const_iterator。 | 它用于返回指向容器过结尾元素的const_iterator。 |
2. | 它的语法为 -: const_iterator cbegin(); | 它的语法为 -: const_iterator cend(); |
3. | 它不需要任何参数。 | 它不需要任何参数。 |
4. | 它的复杂度为常数时间。 | 它的复杂度为常数时间。 |
5. | 它的迭代器有效性不变。 | 它的迭代器有效性不变。 |