📅  最后修改于: 2023-12-03 14:39:51.964000             🧑  作者: Mango
在 C++ STL 中,map
是一种关联容器,对应键值对 (key-value pair) 存储。
map::begin()
和 map::end()
是 map
的两个迭代器,分别指向该容器起始位置和终止位置。使用这两个迭代器可以遍历 map
中的所有键值对。
map::begin()
返回指向 map
容器中第一个元素的迭代器。
iterator begin() noexcept;
const_iterator begin() const noexcept;
其中,iterator
和 const_iterator
都是迭代器类型,可以通过 auto
关键字自动推断类型。
使用 begin()
遍历 map
中的所有键值对时,需要使用迭代器的 ++
运算符逐步向后遍历,直到遍历完所有元素。
例如,以下代码输出 map
中的每个键值对:
#include <iostream>
#include <map>
int main()
{
std::map<std::string, int> map = {{"apple", 3}, {"banana", 7}, {"cherry", 5}};
for (auto iter = map.begin(); iter != map.end(); ++iter)
{
std::cout << iter->first << ": " << iter->second << std::endl;
}
return 0;
}
输出结果为:
apple: 3
banana: 7
cherry: 5
map::end()
返回指向 map
容器中最后一个元素的下一个位置的迭代器。
iterator end() noexcept;
const_iterator end() const noexcept;
使用 end()
配合 begin()
可以遍历 map
中的所有键值对。通常使用 for
循环或 while
循环遍历 map
,例如:
for (auto iter = map.begin(); iter != map.end(); ++iter)
{
// 遍历操作
}
auto iter = map.begin();
while (iter != map.end())
{
// 遍历操作
++iter;
}
遍历 map
时,需要注意使用 const
修饰迭代器类型,以防止修改容器中的元素。
总的来说,map::begin()
和 map::end()
是遍历 map
容器的利器,尤其是在需要对 map
中的元素进行排序和查找时尤为重要。