小陳的C 入坑之旅 dijkstar的簡單實現

2021-10-10 05:26:00 字數 2609 閱讀 3136

/*dijkstar演算法的簡單實現,人生中第乙個演算法實現,o(∩_∩)o哈哈哈~*/

#include

#include

#include

#include

#include

using

namespace std;

vector

double

>> dist_map =,,

,,};

vector

int>> map =,,

,,};

vector

int>> edge;

//建立edge,將新選出的node的座標加入edge,並儲存edge

double

distancecount

(vector

double

>> dist_map , vector<

int> node)

//inedge函式用於查詢node是否在edge中

bool

inedge

(vector

int>> edge, vector<

int> node)

return

false;}

//判斷座標是否出界

bool

isoutrange

(vector

int>> map, vector<

int> node)

return

false;}

//輸入地圖和新的節點,判斷該節點是否為障礙物

bool

isobstacle

(vector

int>> map, vector<

int> node)

return

false;}

//更新距離地圖,更新edge

vector<

int>

dijkstar

(vector<

int> start_node, vector<

int> node)

),node_beside.

push_back()

; node_beside.

push_back()

,node_beside.

push_back()

;//更新dist_map

vector

double

>> dist_sort;

cout <<

"node_beside size: "

<< node_beside.

size()

<< endl;

cout <<

"edge size: "

<< edge.

size()

<< endl;

double d =

distancecount

(dist_map,);

for(

auto i:node_beside)

//如果node沒在edge內,且座標沒有越界,進行以下操作if(

!inedge

(edge,i)&&!

isoutrange

(map,i)

&& d <= dist_map[i[0]

][i[1]

]&&!isobstacle

(map,i)))

;//將剩下的沒經過的node 的到原點的距離,座標儲存

} cout <<

"dist_sort size: "

<

size()

<< endl;

double min_num =

1000

; vector<

int> node_min;

//選出離原點距離最近的座標, 範圍for本質上只有一句,就是for加後面一行語句

for(

auto j:dist_sort)

if(j[0]

< min_num);}

edge.

push_back

(node_min)

;return node_min;

}//初始化

vector

int>>

*initial()

, end_node =

, new_node;

new_node = start_node;

static vector

int>> v =

; vector

int>>

*p =

&v;return p;

}int

main()

cout <<

"路徑的座標是: "

C 之新手入坑

1.經過開發了乙個小球類的的遊戲,收穫了很多知識,但是我卻發現有很多時間是在查詢資料,是在查詢一下很基本的知識,同時c 不同平台的有些東西並不通用 2.開始的時候對於更新ui,我們準備用thread,但是我們卻發現命名空間中沒有thread,然後我們轉向了async和await,發現也不行,最後終於...

mysql 坑 mysql入過的坑

前言 前段時間由於工作需要,部署乙個新的專案。需要安裝mysql,因此遇到不少坑。首先是啟動的時候遇到找不到檔案位置的問題,在網上找了下原因,是由於之前安裝了mysql解除安裝的時候沒有解除安裝乾淨有殘留導致的。需要進入登錄檔cmd regedit hkey local machine system...

C 入坑系列之字元的處理

字元型資料char是程式語言中的一種非常常見的資料型別。在學提時代,當我們需要判斷鍵盤輸入的資料是否是字元或者判斷字母的大小寫時,常常是通過對ascii進行比較完成的。但其實,標準為我們提供了乙個專門用於處理上述需求的函式庫c語言中的ctype或者c 中的cctype,我們只需要包含了相應的標頭檔案...