c++ set的用法是什么

C++ 中的 set 是一种关联容器,它包含一组唯一的对象。每个元素在插入时都会自动按键进行排序。set 中的元素默认按照升序排列,但你也可以提供自定义的比较函数或对象来改变排序方式。以下是 set 的一些常见用法:包含唯一元素:set 中的每个元素只能出现一次,即使你尝试插入相同的元素,它也不会被添加到集合中。#include #include int mai

C++ 中的 set 是一种关联容器,它包含一组唯一的对象。每个元素在插入时都会自动按键进行排序。set 中的元素默认按照升序排列,但你也可以提供自定义的比较函数或对象来改变排序方式。

以下是 set 的一些常见用法:

  1. 包含唯一元素:set 中的每个元素只能出现一次,即使你尝试插入相同的元素,它也不会被添加到集合中。

    #include <iostream>
    #include <set>
    
    int main() {
        std::set<int> my_set = {1, 2, 3, 4, 5};
    
        // 尝试插入重复元素
        my_set.insert(3);
    
        // 输出集合中的元素
        for (int num : my_set) {
            std::cout << num << " ";
        }
    
        return 0;
    }
    
  2. 自动排序:set 中的元素会根据键自动进行排序。默认情况下,它们按照升序排列,但你也可以提供自定义的比较函数或对象来改变排序方式。

    #include <iostream>
    #include <set>
    
    // 自定义比较函数,用于降序排列
    struct CompareDescending {
        bool operator()(int a, int b) const {
            return a > b;
        }
    };
    
    int main() {
        std::set<int, CompareDescending> my_set = {5, 4, 3, 2, 1};
    
        // 输出集合中的元素
        for (int num : my_set) {
            std::cout << num << " ";
        }
    
        return 0;
    }
    
  3. 查找元素:set 提供了 find() 成员函数,用于在集合中查找特定元素。如果找到了该元素,find() 将返回一个指向该元素的迭代器;否则,它将返回指向集合末尾的迭代器。

    #include <iostream>
    #include <set>
    
    int main() {
        std::set<int> my_set = {1, 2, 3, 4, 5};
    
        // 查找元素 3
        auto it = my_set.find(3);
    
        if (it != my_set.end()) {
            std::cout << "Found: " << *it << std::endl;
        } else {
            std::cout << "Not found" << std::endl;
        }
    
        return 0;
    }
    
  4. 删除元素:set 提供了 erase() 成员函数,用于从集合中删除特定元素。如果删除了该元素,erase() 将返回一个指向被删除元素之后元素的迭代器;如果没有找到该元素,它将返回指向集合末尾的迭代器。

    #include <iostream>
    #include <set>
    
    int main() {
        std::set<int> my_set = {1, 2, 3, 4, 5};
    
        // 删除元素 3
        auto it = my_set.find(3);
        if (it != my_set.end()) {
            my_set.erase(it);
        }
    
        // 输出集合中的元素
        for (int num : my_set) {
            std::cout << num << " ";
        }
    
        return 0;
    }
    

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,请发送邮件至 55@qq.com 举报,一经查实,本站将立刻删除。转转请注明出处:https://www.szhjjp.com/n/1201696.html

(0)
派派
上一篇 2024-11-30
下一篇 2024-11-30

相关推荐

  • SQL Server集成服务怎样优化性能

    优化SQL Server集成服务的性能可以通过多种方法来实现,以下是一些建议:优化数据流:减少数据转换和复杂操作:在数据流中尽量减少不必要的转换、合并和计算操作,以降低处理成本。使用并行处理:充分利用SQL Server的并行处理能力,将数据流分割成多个部分并行处理,提高处理速度。优化控制流:减少循环和递归:尽量避免在控制流中使用循环和递归,以减少执行时间和资源消耗。使用并行执行:对于可以并行

    2024-11-01
    0
  • 解析XML的步骤是什么

    解析XML的步骤通常包括以下几个步骤:读取XML文件:首先需要将XML文件读取到内存中,可以使用各种编程语言提供的XML解析器或库来实现。解析XML:解析XML文件的过程通常包括解析XML结构、读取XML元素和属性、处理XML节点等操作。可以使用DOM (Document Object Model)解析器或SAX (Simple API for XML)解析器来解析XML文件。提取数据:根据需要,

    2024-07-05
    0
  • php怎么实现图片缩放和裁剪

    在PHP中实现图片缩放和裁剪可以使用GD库来实现。下面是一个简单的示例代码:// 图片缩放function resizeImage($source, $dest, $newWidth, $newHeight) {$sourceImage = imagecreatefromjpeg($source);$resizedImage = imagecreatetruecolor($newWidth,

    2024-05-25
    0
  • spring aop怎么实现异常处理

    在Spring AOP中,我们可以使用@Around注解来实现异常处理。下面是一个简单的例子,展示了如何使用AOP拦截器来处理方法执行过程中的异常。首先,创建一个自定义异常类:public class CustomException extends RuntimeException {public CustomException(String message) {super(message);}

    2024-09-02
    0
  • MySQL字符集与应用程序编码一致性问题怎么解决

    MySQL 的字符集设置与应用程序编码一致性问题可以通过以下几种方式来解决:使用统一的字符集设置:在创建数据库和表的时候,可以指定统一的字符集和排序规则,确保数据库中的数据都按照同一种字符集进行存储和检索。设定连接字符集:在连接 MySQL 数据库时,可以通过设置连接时的字符集来确保应用程序和数据库之间传输的数据使用同一字符集。可以在连接字符串中指定字符集,或者在应用程序中执行 SET NAMES

    2024-04-02
    0
  • hbuilder适合开发哪些类型应用

    HBuilder是一款功能强大的跨平台开发工具,它支持多种编程语言,适用于多种类型的应用开发。以下是HBuilder适合开发的应用类型:移动端应用:包括iOS、Android等平台的应用程序。Web应用:使用HTML5、CSS、JavaScript等技术开发的网页应用。桌面应用:适用于Windows、macOS等操作系统的桌面应用程序。微信小程序:HBuilder支持开发微信小程序的前端界面

    2024-10-22
    0

发表回复

登录后才能评论