ความแตกต่างหลัก
มีเพียงความแตกต่างเดียวคือ ค่าที่คืน (return value) ภายใน string::operator==() ใช้ string::compare() อยู่แล้ว
- Relational operator (==): คืน
boolแสดงว่า string เท่ากันหรือไม่ - compare(): คืน
intแสดงความสัมพันธ์ของ string ทั้งสอง
ค่าที่คืนของ compare()
0: string เท่ากัน< 0: string แรกน้อยกว่า (lexicographically)> 0: string แรกมากกว่า
กรณีที่ compare() มีประโยชน์
เมื่อต้องการทราบว่าสตริงต่างกันอย่างไร (น้อยกว่าหรือมากกว่า) ไม่ใช่แค่เท่ากันหรือไม่
ตัวอย่าง
#include <iostream>
#include <string>
using namespace std;
int main() {
string s1 = "Tutorials Point";
string s2 = "Hello World";
cout << (s1 == s2) << " "; // 0 (false)
cout << s1.compare(s2) << " "; // 1 (s1 > s2)
cout << s2.compare(s1); // -1 (s2 < s1)
return 0;
}
ผลลัพธ์
0 1 -1