C++ <list> begin / end 函数

C++ 容器类 <list> C++ 容器类 <list>


beginend 是 list 中最重要的迭代器函数,用于获取链表的起始和结束迭代器

beginend 是容器类的成员函数:

  • begin 返回指向链表第一个元素的迭代器
  • end 返回指向链表最后一个元素之后位置的迭代器(哨兵迭代器)

这两个函数是 C++ 标准库算法和范围 for 循环的基础。

单词释义begin 表示"开始",end 表示"结束"。


基本语法与参数

语法格式

iterator begin();
const_iterator begin() const;

iterator end();
const_iterator end() const;

函数说明

  • 返回值begin() 返回指向第一个元素的迭代器,end() 返回哨兵迭代器。

实例

示例 1:遍历链表

实例

#include <iostream>
#include <list>

int main() {
    std::list<int> numbers = {10, 20, 30, 40, 50};

    // 使用迭代器遍历
    std::cout << "使用迭代器遍历: ";
    for(auto it = numbers.begin(); it != numbers.end(); ++it) {
        std::cout << *it << " ";
    }
    std::cout << std::endl;

    return 0;
}

运行结果预期:

使用迭代器遍历: 10 20 30 40 50

示例 2:范围 for 循环

实例

#include <iostream>
#include <list>

int main() {
    std::list<std::string> names = {"Alice", "Bob", "Charlie"};

    std::cout << "范围 for 循环: ";
    for(const auto& name : names) {
        std::cout << name << " ";
    }
    std::cout << std::endl;

    return 0;
}

运行结果预期:

范围 for 循环: Alice Bob Charlie

示例 3:使用 STL 算法

实例

#include <iostream>
#include <list>
#include <algorithm>

int main() {
    std::list<int> numbers = {5, 2, 8, 1, 9, 3};

    // 排序
    numbers.sort();
    std::cout << "排序后: ";
    for(int n : numbers) std::cout << n << " ";
    std::cout << std::endl;

    // 查找
    auto it = std::find(numbers.begin(), numbers.end(), 8);
    if(it != numbers.end()) {
        std::cout << "找到: " << *it << std::endl;
    }

    return 0;
}

运行结果预期:

排序后: 1 2 3 5 8 9
找到: 8

示例 4:反向迭代器

实例

#include <iostream>
#include <list>

int main() {
    std::list<int> numbers = {1, 2, 3, 4, 5};

    std::cout << "正向: ";
    for(auto it = numbers.begin(); it != numbers.end(); ++it) {
        std::cout << *it << " ";
    }
    std::cout << std::endl;

    std::cout << "反向: ";
    for(auto it = numbers.rbegin(); it != numbers.rend(); ++it) {
        std::cout << *it << " ";
    }
    std::cout << std::endl;

    return 0;
}

运行结果预期:

正向: 1 2 3 4 5
反向: 5 4 3 2 1

C++ 容器类 <list> C++ 容器类 <list>