> If I want to jump to byte 1,000,000 [seekg()], does the computer
> have to scan through all 999,999 bytes before reaching the 1,000,000 byte
No.
(In a stream opened in text mode, we can't seek to an arbitrary position like 1,000,000 precisely because of this).
> is it just as efficient to go from 1->1,000,000 as it is to go from 1->2? Thanks
If we had been at 1,000,000 sometime in the recent past, the operating system may have cached the pages in memory; and seeking to and reading from there would not be inefficient (though it would be slower than going from 1->2).
Buffering and moving of characters to or from the actual file is handled by an associated stream buffer object.
To get an idea of what how a stream buffer works, see:
http://www.mr-edd.co.uk/blog/beginners_guide_streambuf