溫馨提示×

C++ distance 如何與算法結(jié)合使用

c++
小樊
100
2024-07-26 14:32:15
欄目: 編程語言

在C++中,可以使用標準庫中的算法和容器來計算距離。以下是一個簡單的示例,演示如何在C++中計算兩個點之間的歐幾里德距離:

#include <iostream>
#include <algorithm>
#include <vector>
#include <cmath>

// 定義一個結(jié)構(gòu)體表示一個點的坐標
struct Point {
    int x, y;
};

// 計算兩點之間的歐幾里德距離
double calculateDistance(const Point& p1, const Point& p2) {
    int dx = p1.x - p2.x;
    int dy = p1.y - p2.y;
    return sqrt(dx*dx + dy*dy);
}

int main() {
    std::vector<Point> points = {{0, 0}, {3, 4}, {6, 8}};

    // 計算第一個點和其他所有點之間的距離
    Point p1 = points[0];
    std::for_each(points.begin() + 1, points.end(), [=](const Point& p) {
        double distance = calculateDistance(p1, p);
        std::cout << "Distance between (" << p1.x << ", " << p1.y << ") and (" << p.x << ", " << p.y << ") is " << distance << std::endl;
    });

    return 0;
}

在這個示例中,我們定義了一個Point結(jié)構(gòu)體來表示一個點的坐標。然后,我們定義了一個calculateDistance函數(shù)來計算兩個點之間的歐幾里德距離。在main函數(shù)中,我們創(chuàng)建了一個存儲點坐標的vector容器,并使用for_each算法來計算第一個點和其他所有點之間的距離并打印出來。

通過結(jié)合使用C++的標準庫中的算法和容器,可以更方便地進行各種計算和操作。

0