当前位置: 首页 > article >正文

【C/C++】initializer_list

initializer_list

1 构造函数场景

class P {
public:
    P(int a, int b) {
        std::cout << "int, int" << std::endl;
    }

    P(std::initializer_list<int> initList) {
        std::cout << "initializer_list" << std::endl;
    }
};

调用:

P p(1, 2);
P q{1, 2};
P r{1, 2, 4};
P s = {1, 2};
int, int
initializer_list
initializer_list
initializer_list

2 算法场景

min({1, 2, 3});
max({1, 2, 3});

源码

  // N2722 + DR 915.
  template<typename _Tp>
    _GLIBCXX14_CONSTEXPR
    inline _Tp
    min(initializer_list<_Tp> __l)
    { return *std::min_element(__l.begin(), __l.end()); }

  template<typename _Tp, typename _Compare>
    _GLIBCXX14_CONSTEXPR
    inline _Tp
    min(initializer_list<_Tp> __l, _Compare __comp)
    { return *std::min_element(__l.begin(), __l.end(), __comp); }

  template<typename _Tp>
    _GLIBCXX14_CONSTEXPR
    inline _Tp
    max(initializer_list<_Tp> __l)
    { return *std::max_element(__l.begin(), __l.end()); }

  template<typename _Tp, typename _Compare>
    _GLIBCXX14_CONSTEXPR
    inline _Tp
    max(initializer_list<_Tp> __l, _Compare __comp)
    { return *std::max_element(__l.begin(), __l.end(), __comp); }

http://www.kler.cn/a/321802.html

相关文章:

  • JavaScript 自动化软件:AutoX.js
  • C++ 判断语句的深入解析
  • Elasticsearch集群和Kibana部署流程
  • 基于Java Springboot快递物流管理系统
  • Linux 下 mysql 9.1 安装设置初始密码 【附脚本】
  • 整理iPhone空间:iphone怎么删除相簿
  • Ansible 剧本的执行
  • 【数据结构】什么是二叉搜索(排序)树?
  • 基于SSM+小程序的自习室选座与门禁管理系统(自习室1)(源码+sql脚本+视频导入教程+文档)
  • Docker 付费订阅价格大幅上调,免费订阅功能受限,云计算和安全产品有调整
  • python爬虫初体验(四)—— 百度文库PPT的爬取
  • cpu路、核、线程、主频、缓存
  • 解决macOS MySQL安装后不能远程访问的问题
  • Vue3.3新特性defineModel
  • 2023_Spark_实验十一:RDD基础算子操作
  • 从零开始使用树莓派debian系统使用opencv4.10.0进行人脸识别(保姆级教程)
  • Linux(Ubuntu)源码安装postgresql16.3
  • mysql数据库的基本管理
  • 【后端】【nginx】nginx常用命令
  • 力扣224. 基本计算器
  • 22 vue3之全局函数和变量插件编写
  • Flask中创建多线程和多进程
  • 黑龙江等保托管:全面解析与实践指南
  • IOS-IPA签名工具 request_post 任意文件读取复现
  • Stable Diffusion 使用详解(13)--- 3D纹理增强
  • C#邮件发送:实现自动化邮件通知完整指南!