利用pair模板降低在存储或者遍历二维数组时的时间复杂度

前提先知:

  1. 要使用 std::pair,需要包含头文件 (vector容器的头文件为
  2. std::pair 可以存储两个不同类型的数据。定义时需要指定两个数据的类型,例如:
std::pair<int, double> p1; // 默认构造,p1.first 和 p1.second 都是默认值(0 和 0.0)
std::pair<int, double> p2(10, 3.14); // 初始化为 (10, 3.14)
  1. std::pair 提供了两个成员变量:
    first:表示第一个值
    second:表示第二个值

使用场景:

利用容器创造二维数组,同时二维数组的列数固定为2,则可以结合pair来构造二维数组,借助代码理解一下:

vector<pair<int, int>> nums(n);
for (int i = 0; i < n; i++) {
    cin >> nums[i].first >> nums[i].second;
}

上述代码在存储数据时将原本应用的双层for循环在结合pair后变成了单层for循环,将时间复杂度由O(n2)降为了O(n),在后续遍历该二维数组的每一个值时,同理,时间复杂度也降为了O(n)。

你可能感兴趣的:(c++,算法,数据结构)