C++容器的范围遍历

C++容器范围遍历是一种简洁而直观的语法,用于遍历容器中的元素。它使用了C++11引入的范围-based for 循环语法,也称为范围遍历或区间遍历。

语法:

范围遍历的语法结构如下:

for (auto element : container) {
    // 对每个元素进行操作
}
  • auto element:定义一个自动类型推断的变量,用于存储容器中的每个元素。类型推断由编译器根据容器的类型自动确定。

  • container:待遍历的容器,可以是向量(vector)、列表(list)、集合(set)、映射(map)等STL容器。

代码举例:

#include <iostream>
#include <vector>
#include <list>
#include <set>
#include <map>
using namespace std;

int main() {
    // 创建一个向量容器
    vector<int> myVector = {1, 2, 3, 4, 5};
    
    // 创建一个链表容器
    list<int> myList = { 1, 2, 3, 4, 5 };
    
    // 创建一个集合容器
    set<int> mySet = { 1, 2, 3, 4, 5 };
    
    // 创建一个映射容器,键类型为字符串,值类型为整数
    map<std::string, int> myMap = { {"a", 1}, {"b", 2}, {"c", 3} };
    
    // 使用范围遍历输出向量容器中的元素
    for (int num : myVector) {
        cout << num << " ";
    }
    cout << endl;
    
    // 使用范围遍历输出链表容器中的元素
    for (int num : myList) {
        cout << num << " ";
    }
    cout << endl;
    
    // 使用范围遍历输出集合容器中的元素
    for (int num : mySet) {
        cout << num << " ";
    }
    cout << endl;
    
    // 使用范围遍历输出映射容器中的键值对
    for (const auto& pair : myMap) {
        cout << "Key: " << pair.first << ", Value: " << pair.second << endl;
    }
    cout << endl;
    
    return 0;
}

特点和用法:

  1. 简洁性:范围遍历语法非常简洁明了,使得代码更易读,减少了使用传统迭代器的复杂性。

  2. 自动类型推断:使用 auto 关键字可以使编译器根据容器元素的类型自动推断遍历的变量类型,减少了代码冗余和错误。

  3. 遍历顺序:范围遍历会按照容器内元素的顺序依次遍历,不同于传统的迭代器遍历可以控制遍历的方向。

  4. 只读遍历:范围遍历只能读取容器中的元素,无法修改容器内的元素,这一点与使用迭代器遍历略有不同。

  5. 适用范围:范围遍历适用于所有支持迭代器的STL容器,包括顺序容器(如vectorlist)、关联容器(如setmap)等。

  • 5
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值