C++ distance 能否實(shí)現(xiàn)自定義距離函數(shù)

c++
小樊
82
2024-07-26 14:37:11
欄目: 編程語言

C++中的標(biāo)準(zhǔn)庫中沒有提供直接支持自定義距離函數(shù)的功能。不過,你可以通過自定義一個(gè)函數(shù)來計(jì)算兩個(gè)對(duì)象的距離,并將其作為參數(shù)傳遞給算法函數(shù),來實(shí)現(xiàn)自定義距離函數(shù)的效果。

例如,你可以定義一個(gè)函數(shù)來計(jì)算兩個(gè)點(diǎn)的歐幾里德距離:

#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函數(shù)傳遞給C++標(biāo)準(zhǔn)庫的算法函數(shù),例如std::sort,來實(shí)現(xiàn)按照自定義距離函數(shù)排序的功能。

0