Shifting the origin of a large list of coordinates
The only thing I can see that will speed stuff up is this part:

string line;
while (getline(infile, line))
{
    std::istringstream iss(line);
    int vertex_source, vertex_destination;
    if (!(iss &gt;&gt; vertex_source &gt;&gt; vertex_destination)) { 


There is a lot of copying from line to iss. This provides some good error checking and correction ability. But does slow the code down.

Replacing the above with

while (iss &gt;&gt; vertex_source &gt;&gt; vertex_destination)
{


results in a 10% speed improvement in my code (though I took out the vectors; I did not need them).