📜  C++ STL中的多集cbegin()和cend()函数(1)

📅  最后修改于: 2023-12-03 14:39:52.966000             🧑  作者: Mango

C++ STL中的多集cbegin()和cend()函数

在C++ STL(标准模板库)中,多集(multiset)是一个容器,它允许存储多个相同的值,并按照一定的顺序进行排序。cbegin()和cend()函数是多集容器类提供的两个成员函数,用于返回指向多集容器中第一个元素和最后一个元素之后的位置的迭代器。

cbegin()函数

cbegin()函数返回一个常量迭代器,指向多集容器中第一个元素的位置。常量迭代器意味着不能通过这个迭代器修改容器中的元素。

multiset<int> mySet = {1, 2, 2, 3, 4, 4, 5};
multiset<int>::const_iterator it = mySet.cbegin();

在上面的例子中,通过cbegin()函数获取到了mySet多集容器的第一个位置的常量迭代器。可以使用解引用操作符*来获取迭代器指向的元素的值。

cout << *it << endl; // 输出:1
cend()函数

cend()函数返回一个常量迭代器,指向多集容器中最后一个元素之后的位置。意味着迭代器无法访问到容器中的任何元素,它的作用是作为一个指示器,表示迭代器到达了多集容器的结尾。

multiset<int>::const_iterator end = mySet.cend();

上面的例子中,使用cend()函数获取到mySet多集容器的最后一个元素之后的位置的常量迭代器。同样,我们无法通过解引用操作符来访问这个迭代器。

使用示例

下面是一个简单的示例,展示了如何使用cbegin()和cend()函数来遍历多集容器中的元素。

#include <iostream>
#include <set>

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

    std::cout << "Elements in the multiset: ";
    for (auto it = mySet.cbegin(); it != mySet.cend(); ++it) {
        std::cout << *it << " ";
    }
    std::cout << std::endl;

    return 0;
}

输出结果为:

Elements in the multiset: 1 2 2 3 4 4 5

在上面的示例中,我们使用cbegin()和cend()函数来获取一个指向mySet多集容器的第一个元素和最后一个元素之后位置的常量迭代器。然后,通过使用for循环遍历常量迭代器,我们可以访问并输出多集容器中的所有元素。

希望这个简单的介绍能帮助你理解和使用C++ STL中多集容器的cbegin()和cend()函数。Markdown格式如上所示,可以直接复制粘贴。