C++ set insert详解

C++ set insert详解

C++ set insert详解

C++中,set是一种关联容器,它可以存储不重复的元素,并且按照特定的顺序进行排序。set中每个元素都是唯一的,如果插入一个已存在的元素,操作会被忽略。

set的特点

  • set中的元素是唯一的。
  • 元素会按照特定的排序规则排序。
  • 插入操作会忽略重复的元素。

set的基本操作

C++标准库中,set的基本操作包括插入元素、删除元素、查找元素等。其中,插入元素是常用操作之一。下面就详细介绍C++中set的插入操作。

set的插入操作

在C++中,set的插入操作可以使用insert()函数来实现。insert()函数有多种重载形式,可以插入单个元素,也可以插入一个范围内的元素。下面我们分别介绍这两种用法。

插入单个元素

使用insert()函数插入单个元素时,调用的方式如下所示:

#include <iostream>
#include <set>

int main() {
    std::set<int> mySet;
    mySet.insert(10);
    mySet.insert(20);
    mySet.insert(30);

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

    return 0;
}

运行结果:

10 20 30

插入一个范围内的元素

除了插入单个元素,insert()函数还可以插入一个范围内的元素。当需要插入一个数组或者另一个容器中的元素时,可以使用insert()函数的另一种重载形式:

#include <iostream>
#include <set>
#include <vector>

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

    mySet.insert(vec.begin(), vec.end());

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

    return 0;
}

运行结果:

1 2 3 4 5

insert()返回值

insert()函数在插入元素时会返回一个pair类型的值,其中的first表示插入的元素的位置,second表示插入是否成功。如果插入成功,second为true;如果插入失败(比如元素已存在),second为false。我们可以通过返回值判断插入是否成功。

#include <iostream>
#include <set>

int main() {
    std::set<int> mySet = {10, 20, 30};

    auto res = mySet.insert(20);
    if (res.second) {
        std::cout << "Insert successful!" << std::endl;
    } else {
        std::cout << "Insert failed!" << std::endl;
    }

    res = mySet.insert(40);
    if (res.second) {
        std::cout <<  "Insert successful!" << std::endl;
    } else {
        std::cout << "Insert failed!" << std::endl;
    }

    return 0;
}

运行结果:

Insert failed!
Insert successful!

总结

通过以上的讲解,我们详细介绍了C++中set的插入操作,包括插入单个元素、插入一个范围内的元素以及insert()函数的返回值。set的插入操作在实际开发中非常常用,能够方便地向set中添加元素,并且保证元素的唯一性。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程