algoritmo de dijkstra - em c ++?

Nos últimos quatro dias, estou tentando entender o algoritmo do dijkstra. Mas eu não posso. Eu tenho um vetor de pontos. A partir disso, criei uma matriz de custos. Mas não sei como criar o algoritmo do dijkstra. As fontes estão disponíveis na rede, mas eu não sou do fundo da ciência da computação, então não consigo entendê-las. Eu estou tentando fazer uma função 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;
}

Se alguém, você pode postar o código. Eu não sou preguiçoso. Mas meu projeto já ultrapassou o prazo de um dia atrás. Agora eu perdi minha esperança de entender a lógica. Agora só quero a função. "Um homem necessitado é realmente o anjo".

EDITAR:&nbsp;Agradecimentos especiais a "Loki astari" por sua excelente resposta