C++中的標準庫中沒有提供直接支持自定義距離函數的功能。不過,你可以通過自定義一個函數來計算兩個對象的距離,并將其作為參數傳遞給算法函數,來實現自定義距離函數的效果。
例如,你可以定義一個函數來計算兩個點的歐幾里德距離:
#include <iostream>
#include <cmath>
struct Point {
int x;
int y;
};
double distance(const Point& p1, const Point& p2) {
return std::sqrt(std::pow(p2.x - p1.x, 2) + std::pow(p2.y - p1.y, 2));
}
int main() {
Point p1 = {0, 0};
Point p2 = {3, 4};
std::cout << "Distance between p1 and p2: " << distance(p1, p2) << std::endl;
return 0;
}
然后,你可以將distance
函數傳遞給C++標準庫的算法函數,例如std::sort
,來實現按照自定義距離函數排序的功能。