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);
T1
vàT2
là kiểu dữ liệu của hai giá trị trong pairpair_name
là tên của pairvalue1
vàvalue2
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 first
và second
.
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
first
vàsecond
. - 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.