I believe std::vector has the least overhead in size (0 bytes), whereas std::list has to have pointers to the head, and each node has a pointer to the next & previous node...
But for what you're describing, using an std::deque would be perfect because you'd only have to use the push_back() and pop_front() member functions to remove the oldest line and add a new one.