【C++ STL 模板类】pair 键值对

[复制链接]
发表于 2026-1-7 01:21:06 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
      
  • C++ STL 尺度库提供了 pair 类模板,专门用来将 2 个平常元素 first 和 second(可以是 C++ 根本数据范例、结构体、类自定的范例)创建成一个新元素<first, second>。  
  • 头文件 <utility>
【 1. pair 对象的创建 】


      
  • 默认构造函数:空的 pair对象。
  1. // 1. 默认构造函数,即创建空的 pair 对象
  2. pair <DataType1, DataType2> pair1;
复制代码

      
  • 赋值构造函数:传入参数赋值。
  1. // 2. 直接使用 2 个元素初始化成 pair 对象
  2. pair <DataType1, DataType2> pair2(DataType1_Value, DataType2_Value);
复制代码

      
  • 拷贝构造函数:使用已有对象赋值。
  1. // 3. 拷贝构造函数:即借助另一个 pair 对象,创建新的 pair 对象
  2. pair <DataType1, DataType2> pair3(pair2);
复制代码

      
  • 移动构造函数(C++ 11 尺度新增)
    在创建 pair4 对象时,调用了 make_pair() 函数 ,它也是 <utility> 头文件提供的,其功能是 天生一个 pair 对象。因此,当我们将 make_pair() 函数的返回值(是一个暂时对象,这个暂时对象是右值,意味着它是一个暂时存在的、不可修改的对象)作为参数转达给 pair() 构造函数时,其调用的是移动构造函数,而不是拷贝构造函数。
  1. // 4. 移动构造函数
  2. pair <DataType1, DataType2> pair4 (make_pair(DataType1_Value, DataType2_Value));
  3. //或:
  4. pair <DataType1, DataType2> pair4 = make_pair(DataType1_Value, DataType2_Value);
复制代码

      
  • 右值引用构造函数(C++11 尺度新增)
  1. // 5. 使用右值引用参数,创建 pair 对象
  2. pair <DataType1, DataType2> pair5(DataType1(DataType1_Value), DataType2(DataType2_Value));
复制代码

      
  • 不常用的构造函数(C++11 尺度新增)
[code][/code]
回复

使用道具 举报

登录后关闭弹窗

登录参与点评抽奖  加入IT实名职场社区
去登录
快速回复 返回顶部 返回列表