全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

C++如何遍历set容器_C++ set迭代器与C++11 range for的使用

答案:C++中遍历set常用迭代器和range for循环。使用begin()/end()配合迭代器可正向遍历,元素自动升序且去重;C++11起可用auto简化声明;const_iterator用于只读访问;range for语法更简洁,推荐使用const auto&避免拷贝;反向遍历用rbegin()/rend()实现降序输出。

在C++中,set 是一种关联式容器,内部元素自动按升序排序且不允许重复。遍历 set 容器有多种方式,最常用的是使用迭代器和 C++11 引入的 range for 循环。下面详细介绍这两种方法。

使用传统迭代器遍历 set

set 提供了 begin() 和 end() 成员函数,分别返回指向第一个元素和末尾后一位的迭代器。通过递增迭代器,可以访问每个元素。

示例如下:

#include 
#include 
using namespace std;

int main() {
    set nums = {5, 2, 8, 2, 1}; // 自动去重并排序

    for (set::iterator it = nums.begin(); it != nums.end(); ++it) {
        cout << *it << " ";
    }
    cout << endl;
    return 0;
}

输出结果为:1 2 5 8。注意元素已排序且重复值被去除。

也可以使用 const_iterator 遍历只读集合,或使用 auto 简化声明(C++11 起):

for (auto it = nums.cbegin(); it != nums.cend(); ++it) {
    cout << *it << " ";
}

使用 C++11 range for 循环遍历

C++11 引入了基于范围的 for 循环(range-based for),语法更简洁直观。

基本格式为:

for (declaration : range) {
    // 操作
}

遍历 set 的示例:

for (const auto& num : nums) {
    cout << num << " ";
}

这里使用 const auto& 可避免不必要的拷贝,尤其对复杂类型更高效。如果只是读取基本类型(如 int),直接用 auto 也可以。

反向遍历 set

若需要从大到小访问元素,可使用反向迭代器:

for (auto rit = nums.rbegin(); rit != nums.rend(); ++rit) {
    cout << *rit << " ";
}

输出为:8 5 2 1,即降序排列。

基本上就这些。使用 range for 是现代 C++ 推荐的方式,代码更清晰;而传统迭代器在需要手动控制访问位置时仍有用武之地。根据场景选择合适的方法即可。


# ai  # c++  # ios  # stream  # 排列  # for  # 成员函数  # const  # auto  # int  # 循环  # 遍历  # 迭代  # 升序  # 的是  # 是一种  # 降序  # 第一个  # 推荐使用  # 之地  # 详细介绍 


相关文章: 如何通过wdcp面板快速创建网站?  如何实现建站之星域名转发设置?  武汉网站制作费用多少,在武汉武昌,建面100平方左右的房子,想装暖气片,费用大概是多少啊?  品牌网站制作公司有哪些,买正品品牌一般去哪个网站买?  如何自定义建站之星模板颜色并下载新样式?  建站之星备案流程有哪些注意事项?  如何通过IIS搭建网站并配置访问权限?  建站之星代理商如何保障技术支持与售后服务?  合肥制作网站的公司有哪些,合肥聚美网络科技有限公司介绍?  如何配置WinSCP新建站点的密钥验证步骤?  建站主机功能解析:服务器选择与快速搭建指南  建站之星展会模板:智能建站与自助搭建高效解决方案  如何在万网主机上快速搭建网站?  专业制作网站的公司哪家好,建立一个公司网站的费用.有哪些部分,分别要多少钱?  定制建站流程解析:需求评估与SEO优化功能开发指南  已有域名和空间如何搭建网站?  建站之星安装步骤有哪些常见问题?  济南专业网站制作公司,济南信息工程学校怎么样?  建站VPS配置与SEO优化指南:关键词排名提升策略  如何基于云服务器快速搭建网站及云盘系统?  小自动建站系统:AI智能生成+拖拽模板,多端适配一键搭建  已有域名能否直接搭建网站?  已有域名如何免费搭建网站?  网站代码制作软件有哪些,如何生成自己网站的代码?  如何在云主机上快速搭建多站点网站?  建站之星Pro快速搭建教程:模板选择与功能配置指南  如何制作算命网站,怎么注册算命网站?  香港网站服务器数量如何影响SEO优化效果?  导航网站建站方案与优化指南:一站式高效搭建技巧解析  建站主机SSH密钥生成步骤及常见问题解答?  孙琪峥织梦建站教程如何优化数据库安全?  制作网站的公司有哪些,做一个公司网站要多少钱?  公司门户网站制作流程,华为官网怎么做?  企业宣传片制作网站有哪些,传媒公司怎么找企业宣传片项目?  如何用搬瓦工VPS快速搭建个人网站?  如何用虚拟主机快速搭建网站?详细步骤解析  魔方云NAT建站如何实现端口转发?  免费制作统计图的网站有哪些,如何看待现如今年轻人买房难的情况?  商务网站制作工程师,从哪几个方面把握电子商务网站主页和页面的特色设计?  如何通过FTP服务器快速搭建网站?  建站之星安装需要哪些步骤及注意事项?  C#如何序列化对象为XML XmlSerializer用法  如何在阿里云香港服务器快速搭建网站?  网页制作模板网站推荐,网页设计海报之类的素材哪里好?  设计网站制作公司有哪些,制作网页教程?  如何撰写建站申请书?关键要点有哪些?  c++23 std::expected怎么用 c++优雅处理函数错误返回【详解】  专业网站制作服务公司,有哪些网站可以免费发布招聘信息?  建站之星安全性能如何?防护体系能否抵御黑客入侵?  网站好制作吗知乎,网站开发好学吗?有什么技巧? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。