在 C++ STL 中multimap::begin() 和 multimap::end() 的使用
multimap::begin() 是 C++ STL 中的一个内置函数,它返回一个指向 multimap 容器中第一个元素的迭代器。由于 multimap 容器按照一定的顺序存储元素,begin() 函数会指向容器根据排序标准排在第一的元素。
语法:
multimap_name.begin()
参数: 此函数不接受任何参数。
返回值: 此函数返回一个迭代器,指向 multimap 容器中第一个元素。
示例:
#include <iostream>
#include <map>
int main()
{
// 创建一个将 int 映射到 string 的 multimap
std::multimap<int, std::string> mmap = {
{1, "one"},
{2, "two"},
{3, "three"},
{3, "three again"},
};
// 打印 multimap 的第一个和最后一个元素
std::cout << "First: " << mmap.begin()->second << std::endl;
std::cout << "Last: " << (--mmap.end())->second << std::endl;
return 0;
}
输出:
First: one
Last: three again
// C++ 函数示例
// 演示 multimap::begin() 函数
#include <bits/stdc++.h>
using namespace std;
int main()
{
// 初始化容器
multimap<int, int> mp;
// 以随机顺序插入元素
mp.insert({ 2, 30 });
mp.insert({ 1, 40 });
mp.insert({ 3, 60 });
mp.insert({ 4, 20 });
mp.insert({ 5, 50 });
auto ite = mp.begin();
cout << "\nThe first element is: {"
<< ite->first
<< ", " << ite->second
<< "}" << endl;
// 输出元素
cout << "\nThe multimap is: \n";
cout << "KEY\tELEMENT\n";
for (auto itr = mp.begin(); itr != mp.end(); ++itr) {
cout << itr->first
<< '\t' << itr->second
<< '\n';
}
return 0;
}
输出:
The first element is: {1, 40}
The multimap is :
KEY ELEMENT
1 40
2 30
3 60
4 20
5 50
multimap::end() 是 C++ STL 中的一个内置函数,它返回一个迭代器,指向 multimap 的最后一个元素之后的理论位置。由于 multimap 容器按照一定的顺序存储元素,end() 函数会指向那个理论位置,该位置在根据排序标准排在最后一个元素之后。
语法:
multimap_name.end()
参数: 此函数不接受任何参数。
返回值: 此函数返回一个迭代器,指向 multimap 容器的最后一个元素之后的理论位置。
// C ++函数以说明multimap :: end()函数
#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 << "\nThe multimap is : \n";
cout << "KEY\tELEMENT\n";
for (auto itr = mp.begin(); itr != mp.end(); ++itr) {
cout << itr-> first
<< '\t' << itr-> second << '\n'; // modified
}
return 0;
}
Output:
The multimap is :
KEY ELEMENT
1 40
2 30
3 60
4 20
5 50
让我们看看下表中的差异,如下所示:
multimap :: begin() | multimap :: end() |
---|---|
它用于返回多映射容器中第一个元素的引用迭代器。 | 它用于返回多映射容器中过去的末尾元素的迭代器。 |
语法为 -:iterator begin(); | 语法为 -:iterator end(); |
它不需要任何参数。 | 它不需要任何参数。 |
它的复杂度是常数。 | 它的复杂度是常数。 |
它的迭代器有效性不会发生变化。 | 它的迭代器有效性不会发生变化。 |