亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

C++圖算法庫怎么用

發布時間:2024-08-13 13:23:30 來源:億速云 閱讀:94 作者:小樊 欄目:編程語言

C++圖算法庫是一種用于處理圖數據結構的庫,在實際應用中可以用于解決各種圖算法問題,如最短路徑、最小生成樹、拓撲排序等。下面是一個簡單的示例,展示如何使用C++圖算法庫來解決最短路徑問題:

#include <iostream>
#include <boost/graph/adjacency_list.hpp>
#include <boost/graph/dijkstra_shortest_paths.hpp>

int main()
{
    // 定義圖數據結構
    typedef boost::adjacency_list<boost::listS, boost::vecS, boost::directedS,
        boost::no_property, boost::property<boost::edge_weight_t, int>> Graph;
    typedef boost::graph_traits<Graph>::vertex_descriptor Vertex;
    typedef boost::graph_traits<Graph>::edge_descriptor Edge;

    // 創建圖
    Graph g(5);
    boost::add_edge(0, 1, 2, g);
    boost::add_edge(0, 2, 4, g);
    boost::add_edge(1, 3, 1, g);
    boost::add_edge(2, 3, 3, g);
    boost::add_edge(3, 4, 5, g);

    // 定義起點和終點
    Vertex start = 0;
    Vertex goal = 4;

    // 計算最短路徑
    std::vector<Vertex> predecessors(boost::num_vertices(g));
    std::vector<int> distances(boost::num_vertices(g));
    boost::dijkstra_shortest_paths(g, start,
        boost::predecessor_map(boost::make_iterator_property_map(predecessors.begin(), boost::get(boost::vertex_index, g)))
        .distance_map(boost::make_iterator_property_map(distances.begin(), boost::get(boost::vertex_index, g))));

    // 輸出結果
    std::cout << "Shortest path from " << start << " to " << goal << ": ";
    for (Vertex v = goal; v != start; v = predecessors[v])
    {
        std::cout << v << " <- ";
    }
    std::cout << start << std::endl;
    std::cout << "Total distance: " << distances[goal] << std::endl;

    return 0;
}

在上面的示例中,我們首先定義了一個有向加權圖數據結構,并創建了一個包含5個頂點的圖。然后我們定義了起點和終點,使用boost庫中的dijkstra_shortest_paths函數計算最短路徑,并最后輸出結果。

這只是一個簡單的示例,C++圖算法庫還有很多其他功能可以用于處理更復雜的圖算法問題。您可以根據具體的需求查閱boost圖算法庫的文檔,了解更多的用法。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

c++
AI

如皋市| 镇巴县| 民县| 吉林市| 公安县| 托克托县| 长乐市| 西吉县| 库尔勒市| 普兰县| 荥阳市| 廊坊市| 都昌县| 保康县| 娄底市| 潞西市| 宁波市| 桐柏县| 垦利县| 普宁市| 永城市| 霞浦县| 怀宁县| 常山县| 浏阳市| 安国市| 孟连| 大姚县| 珠海市| 恩施市| 徐州市| 龙岩市| 南京市| 辽源市| 富蕴县| 交城县| 大方县| 桐城市| 神木县| 林西县| 东台市|