Rate this post

pair là một kiểu dữ liệu trong C++, nó cho phép bạn lưu trữ hai giá trị cùng một lúc. pair được định nghĩa trong thư viện STL (Standard Template Library) của C++ và được sử dụng rất nhiều trong các trường hợp khác nhau.

Các bài viết liên quan:

Cú pháp:

pair<T1, T2> pair_name;

hoặc

pair<T1, T2> pair_name(value1, value2);
  • T1T2 là kiểu dữ liệu của hai giá trị trong pair
  • pair_name là tên của pair
  • value1value2 là giá trị của hai phần tử trong pair

Ví dụ:

#include <iostream>
#include <utility>
using namespace std;

int main() {
    pair<int, string> p1;
    p1.first = 100;
    p1.second = "hello";
    cout << "p1: " << p1.first << ", " << p1.second << endl;

    pair<int, string> p2(200, "world");
    cout << "p2: " << p2.first << ", " << p2.second << endl;

    pair<string, string> p3("John", "Doe");
    cout << "p3: " << p3.first << ", " << p3.second << endl;

    return 0;
}
Kết quả:
p1: 100, hello
p2: 200, world
p3: John, Doe

Trong ví dụ trên, chúng ta khai báo và khởi tạo hai pair với các kiểu dữ liệu khác nhau, và truy cập vào các phần tử trong pair bằng cách sử dụng thuộc tính firstsecond.

pair có thể được sử dụng trong nhiều trường hợp khác nhau như trong các container như map, trong các hàm trả về nhiều giá trị, v.v.

Ưu điểm của pair trong c++

  • Tiện dụng: pair là một cấu trúc dữ liệu rất tiện dụng để lưu trữ hai giá trị cùng một lúc, ví dụ như trong các trường hợp muốn lưu trữ một cặp key-value trong map hoặc lưu trữ hai giá trị trả về của một hàm.
  • Dễ sử dụng: Cú pháp khai báo và khởi tạo pair rất đơn giản và dễ hiểu, chúng ta có thể truy cập vào các phần tử trong pair bằng cách sử dụng thuộc tính firstsecond.
  • Tiết kiệm bộ nhớ: pair sử dụng ít bộ nhớ hơn so với việc khai báo hai biến riêng biệt.
  • Tương thích: pair là một kiểu dữ liệu được hỗ trợ bởi STL, nó có thể được sử dụng với các container khác như map, set, v.v.
  • Hiệu quả: pair cung cấp một cách để lưu trữ hai giá trị cùng một lúc mà không cần phải khai báo một cấu trúc dữ liệu mới hoặc struct.
  • Tính chất tương tự với cấu trúc dữ liệu: pair giống như struct trong việc lưu trữ các giá trị liên quan nhau và có thể sử dụng trong nhiều trường hợp tương tự như struct.
  • Có sẵn các hàm hỗ trợ: C++ cung cấp một số hàm tiện ích như make_pair để tạo ra một pair với hai giá trị cho trước, swap để hoán đổi hai giá trị trong pair, v.v.
  • Tính chất định nghĩa: pair cho phép bạn định nghĩa các kiểu dữ liệu riêng cho các giá trị trong pair, ví dụ như sử dụng pair<int, string> để lưu trữ một cặp số nguyên và chuỗi.

Như vậy, pair là một kiểu dữ liệu rất hữu ích trong C++ và được sử dụng rất nhiều trong các trường hợp khác nhau. Nó cung cấp một cách tiện lợi và hiệu quả để lưu trữ hai giá trị cùng một lúc, và có sẵn các hàm hỗ trợ tiện

Một số ví dụ pair trong c++

Ví dụ 1: Sử dụng pair để lưu trữ một cặp key-value trong map

#include <iostream>
#include <map>
#include <utility>
using namespace std;

int main() {
    map<string, int> m;
    m.insert(make_pair("apple", 10));
    m.insert(make_pair("banana", 20));
    m.insert(make_pair("cherry", 30));

    for (auto it = m.begin(); it != m.end(); ++it)
        cout << it->first << ": " << it->second << endl;

    return 0;
}

Kết quả:

apple: 10
banana: 20
cherry: 30

Ví dụ 2: Sử dụng pair để lưu trữ hai giá trị trả về của một hàm

#include <iostream>
#include <utility>
using namespace std;

pair<int, int> divide(int x, int y) {
    int quotient = x / y;
    int remainder = x % y;
    return make_pair(quotient, remainder);
}

int main() {
    int x = 25, y = 4;
    auto result = divide(x, y);
    cout << x << " / " << y << " = " << result.first << " (remainder: " << result.second << ")" << endl;
    return 0;
}

Kết quả:

25 / 4 = 6 (remainder: 1)

Ví dụ 3: Sử dụng pair để lưu trữ thông tin về một điểm trong mặt phẳng hai chiều

#include <iostream>
#include <utility>
using namespace std;

int main() {
    pair<double, double> point;
    point.first = 3.14;
    point.second = 2.71;

    cout << "Coordinates of point: (" << point.first << ", " << point.second << ")" << endl;
    return 0;
}

Kết quả:

Coordinates of point: (3.14, 2.71)

Ví dụ 4: Sử dụng pair để lưu trữ thông tin về một hình chữ nhật

#include <iostream>
#include <utility>
using namespace std;

int main() {
    pair<double, double> rect;
    rect.first = 3.14;
    rect.second = 2.71;

    cout << "Width: " << rect.first << endl;
    cout << "Height: " << rect.second << endl;
    cout << "Area: " << rect.first * rect.second << endl;
    return 0;
}

Kết quả:

Width: 3.14
Height: 2.71
Area: 8.5254

Trong các ví dụ trên, chúng ta sử dụng pair để lưu trữ các thông tin khác nhau, như cặp key-value trong map, hai giá trị trả về của hàm, thông tin về một điểm trong mặt phẳng hai chiều, v.v.

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *

Contact Me on Zalo
Call now