Skip to main content

Command Palette

Search for a command to run...

C++ pair 知识点总结

Updated
•1 min read•View as Markdown
C++ pair 知识点总结
T
确定性世界里,一个被允许的异常

C++ pair 知识点总结

1. 基本概念

  • pair 是 C++ STL 中的模板类,用于将两个值组合成一个单元

  • 头文件:#include <utility>(使用 map 时会自动包含)

  • 常用来存储键值对、坐标、两个相关变量等

2. 定义与初始化

// 1. 默认构造
pair<int, string> p1;

// 2. 直接赋值
pair<int, string> p2(1, "hello");

// 3. 拷贝构造
pair<int, string> p3(p2);

// 4. make_pair 自动推导类型
auto p4 = make_pair(2, "world");

3. 访问成员

  • first:第一个元素

  • second:第二个元素

p2.first = 10;
p2.second = "hi";
cout << p2.first << " " << p2.second << endl;

4. 常用操作

赋值

p1 = p2;

比较运算

按 first 优先比较,first 相等再比较 second 支持:==、!=、<、<=、>、>=

交换

swap(p1, p2);
// 或
p1.swap(p2);

5. 常见用法

  • 配合 vector 存多组二元数据

    vector<pair<int, int>> vec;
    vec.emplace_back(1, 2);
    vec.push_back({3, 4});
    
  • 遍历

    for (auto &p : vec) {
        cout << p.first << " " << p.second << endl;
    }
    
  • 作为 map 的元素类型

    map<int, string> mp;
    mp.insert({1, "a"});
    // mp 中每个元素都是 pair<const int, string>
    

6. 简化写法(C++11+)

// 结构化绑定(C++17)
auto [x, y] = p2;

More from this blog

离散数学5.1-二元关系一

一、有序对和笛卡尔积 1、有序对(序偶):由两个元素 x 和 y 按照确定顺序排列组成的二元组,记作⟨x, y⟩ 2、笛卡尔积:以 A 中元素为第一元、B 中元素为第二元,构造所有有序对⟨x,y⟩; 由全部这类有序对构成的集合,称为 A 与 B 的笛卡尔积,记作 AXB 例题: 已知 A={a,b}, B={0,1,2},求笛卡尔积 A × B、B × A A × B(前元取自 A,后元取自 B

Jun 25, 20261 min read14
离散数学5.1-二元关系一
天

天创域

37 posts

欢迎来到天创的博客