C++ STL set容器迭代器如何高效运用详解?

2026-04-17 01:150阅读0评论SEO资源
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计1766个文字,预计阅读时间需要8分钟。

C++ STL set容器迭代器如何高效运用详解?

使用`map`容器时,C++ STL 中的`set`容器未提供`at()`成员函数,也不支持通过`[]`运算符进行元素访问。因此,若要访问`set`容器中存储的元素,只能借助`set`容器的迭代器。

和 map 容器不同,C++ STL 中的 set 容器类模板中未提供 at() 成员函数,也未对 [] 运算符进行重载。因此,要想访问 set 容器中存储的元素,只能借助 set 容器的迭代器。

值得一提的是,C++ STL 标准库为 set 容器配置的迭代器类型为双向迭代器。这意味着,假设 p 为此类型的迭代器,则其只能进行 ++p、p++、--p、p--、*p 操作,并且 2 个双向迭代器之间做比较,也只能使用 == 或者 != 运算符。

在 set 容器类模板提供的所有成员函数中,返回迭代器的成员函数如表 1 所示。

表 1 C++ set 容器迭代器方法 成员方法 功能 begin() 返回指向容器中第一个(注意,是已排好序的第一个)元素的双向迭代器。如果 set 容器用 const 限定,则该方法返回的是 const 类型的双向迭代器。 end() 返回指向容器最后一个元素(注意,是已排好序的最后一个)所在位置后一个位置的双向迭代器,通常和 begin() 结合使用。如果 set 容器用 const 限定,则该方法返回的是 const 类型的双向迭代器。 rbegin() 返回指向最后一个(注意,是已排好序的最后一个)元素的反向双向迭代器。如果 set 容器用 const 限定,则该方法返回的是 const 类型的反向双向迭代器。
阅读全文

本文共计1766个文字,预计阅读时间需要8分钟。

C++ STL set容器迭代器如何高效运用详解?

使用`map`容器时,C++ STL 中的`set`容器未提供`at()`成员函数,也不支持通过`[]`运算符进行元素访问。因此,若要访问`set`容器中存储的元素,只能借助`set`容器的迭代器。

和 map 容器不同,C++ STL 中的 set 容器类模板中未提供 at() 成员函数,也未对 [] 运算符进行重载。因此,要想访问 set 容器中存储的元素,只能借助 set 容器的迭代器。

值得一提的是,C++ STL 标准库为 set 容器配置的迭代器类型为双向迭代器。这意味着,假设 p 为此类型的迭代器,则其只能进行 ++p、p++、--p、p--、*p 操作,并且 2 个双向迭代器之间做比较,也只能使用 == 或者 != 运算符。

在 set 容器类模板提供的所有成员函数中,返回迭代器的成员函数如表 1 所示。

表 1 C++ set 容器迭代器方法 成员方法 功能 begin() 返回指向容器中第一个(注意,是已排好序的第一个)元素的双向迭代器。如果 set 容器用 const 限定,则该方法返回的是 const 类型的双向迭代器。 end() 返回指向容器最后一个元素(注意,是已排好序的最后一个)所在位置后一个位置的双向迭代器,通常和 begin() 结合使用。如果 set 容器用 const 限定,则该方法返回的是 const 类型的双向迭代器。 rbegin() 返回指向最后一个(注意,是已排好序的最后一个)元素的反向双向迭代器。如果 set 容器用 const 限定,则该方法返回的是 const 类型的反向双向迭代器。
阅读全文