algoritmo de dijkstra - en c ++?

Durante los últimos cuatro días, estoy tratando de entender el algoritmo de dijkstra. Pero no puedo Tengo un vector de puntos. A partir de eso, creé una matriz de costos. Pero no sé cómo hacer el algoritmo de dijkstra. Las fuentes están disponibles en la red, pero no soy de informática, por lo que no puedo entenderlas. Estoy tratando de hacer una función como esta

vector<int> dijkstra(costMatrix[][])
{
  ....
  ....
  return vector<int>pathPointindex
}

main()
{
    vector<Point> availablePoints;
    costMatrix[][]=createCostMatrix();
    vector<int> indexes=dijikstra(costMatrix)
    for(int i=0;i<indexes.size();i++)
       cout << "path points are " << availablePoints[indexes[i]] << endl;
}

Si hay alguien, ¿puede publicar el código? No soy vago Pero mi proyecto ya superó la fecha límite hace un día. Ahora perdí la esperanza de entender la lógica. Ahora solo quiero la función. "Un hombre necesitado es el ángel de verdad".

EDITAR: Un agradecimiento especial a "Loki astari" por su excelente respuesta

Respuestas a la pregunta(6)

Su respuesta a la pregunta