Toán tử quan hệ
#include <deque>
bool operator==(const deque& a, const deque& b);
bool operator!=(const deque& a, const deque& b);
bool operator<(const deque& a, const deque& b);
bool operator>(const deque& a, const deque& b);
bool operator<=(const deque& a, const deque& b);
bool operator>=(const deque& a, const deque& b);
So sánh hai deque với nhau.
Tham số
a, b
- Hai deque cần so sánh. Chúng phải có cùng kiểu phần tử.
Giá trị trả về
Trả về true nếu biểu thức so sánh là đúng, false nếu sai.
Đặc điểm
- Các toán tử quan hệ thực hiện so sánh từ điển, không phải so sánh giá trị tổng của các phần tử.
- Việc so sánh các phần tử của deque sử dụng các toán tử quan hệ tương ứng của kiểu phần tử. Do đó, kiểu phần tử của deque phải hỗ trợ các toán tử quan hệ.
- Toán tử
!=
trả về kết quả ngược lại với toán tử==
. - Các toán tử
>
,<=
,>=
được định nghĩa dựa trên kết quả của<
và==
. - Phép so sánh từ điển:
- Các toán tử quan hệ so sánh hai deque dựa trên phép so sánh từ điển (lexicographical comparison). Nghĩa là, các phần tử tương ứng của hai deque sẽ được so sánh lần lượt với nhau, bắt đầu từ phần tử đầu tiên.
- Các toán tử quan hệ sẽ so sánh từng cặp phần tử tương ứng của hai deque (phần tử đầu tiên của deque này với phần tử đầu tiên của deque kia, phần tử thứ hai với phần tử thứ hai, v.v.).
- Ngay khi gặp cặp phần tử đầu tiên khác nhau, kết quả của phép so sánh hai deque sẽ được quyết định bởi kết quả của phép so sánh hai phần tử đó. Ví dụ, nếu
deque1[0] < deque2[0]
thì deque1 < deque2 là true, bất kể các phần tử còn lại. - Nếu một deque là tiền tố (prefix) của deque kia (nghĩa là tất cả các phần tử của deque ngắn hơn đều bằng các phần tử tương ứng của deque dài hơn), thì deque ngắn hơn được coi là nhỏ hơn.
- Hai deque được coi là bằng nhau nếu chúng có cùng kích thước và tất cả các phần tử tương ứng đều bằng nhau.
Ví dụ
#include <iostream>
#include <deque>
int main() {
std::deque<int> deque1 = {1, 2, 3};
std::deque<int> deque2 = {1, 2, 3};
std::deque<int> deque3 = {1, 2, 4};
std::deque<int> deque4 = {1, 2};
std::cout << "deque1 == deque2: " << (deque1 == deque2) << '\n'; // Output: deque1 == deque2: 1 (true)
std::cout << "deque1 != deque3: " << (deque1 != deque3) << '\n'; // Output: deque1 != deque3: 1 (true)
std::cout << "deque1 < deque3: " << (deque1 < deque3) << '\n'; // Output: deque1 < deque3: 1 (true)
std::cout << "deque4 < deque1: " << (deque4 < deque1) << '\n'; // Output: deque4 < deque1: 1 (true)
std::cout << "deque1 > deque4: " << (deque1 > deque4) << '\n'; // Output: deque1 > deque4: 1 (true)
std::cout << "deque1 >= deque2: " << (deque1 >= deque2) << '\n'; // Output: deque1 >= deque2: 1 (true)
std::cout << "deque1 <= deque3: " << (deque1 <= deque3) << '\n'; // Output: deque1 <= deque3: 1 (true)
return 0;
}
Các hàm liên quan
= | Gán nội dung |
swap | Hoán đổi nội dung của hai deque với nhau |