I/O function takes far too long
I setup nodes.size() to return 744.
This then forces all 553536 to be read from the file.

When I run your code it completes in 3.8 seconds (with -O3 it takes 2.5 seconds).

If I update the code to reserve the appropriate amount of space in each vector we can reduce the time it takes to: 3.3 seconds (with -O3 2.2 seconds).

So for the 5 minute figure you are quoting there must be some other error in your code.

Comments on your code:

Pass no-mutable parameters by cost reference (to avoid the copy).

void Level::PopulatePathVectors(string pathTable)


Add lines to reserve the appropriate space in each vector. This will prevent multiple re-allocations of the vector while you read. This is important when you have a triply nested vector.

    pathLookupVectors.push_back(vector&lt;vector&lt;int&gt; &gt;());
    pathLookupVectors.reserve(nodes.size());                // Add this line

    for (unsigned int i = 0; i &lt; nodes.size(); i++)
    {
        pathLookupVectors.push_back(vector&lt;vector&lt;int&gt;&gt;());
        pathLookupVectors.back().reserve(nodes.size())      // Add this line


No Need to manually close the file.
see https://stackoverflow.com/q/748014/14065
Implementation using fstream failed evaluation

myFile.close();