91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

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

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

孝感市| 紫阳县| 凤城市| 永清县| 东源县| 阿拉善左旗| 吴江市| 武胜县| 策勒县| 明溪县| 东安县| 芦山县| 白河县| 宜君县| 潜山县| 舟山市| 桐庐县| 嘉荫县| 滨海县| 建湖县| 象山县| 邮箱| 黄平县| 大渡口区| 德江县| 孙吴县| 凤冈县| 黄山市| 临泽县| 莱阳市| 琼中| 都昌县| 石泉县| 体育| 磴口县| 济阳县| 黔西县| 昭觉县| 桃园县| 宜兰市| 轮台县|