If you look at the raw data array you should see ascii characters in a string.
One thing that helps is that we can run DF in Windows, OSX, Linux, and WINE. Different ones are useful for discovering different things. I don't know the particulars. Only Quietust and Angavrilov do.
I found the command for this actually, run strings on linux. It'll dig out all of the human readable text.
Under GCC, vectors consist of 3 pointers (12 bytes) internally, while strings consist of just 1 pointer (to a buffer with some header information followed by ASCII characters, I think). The layout of these is different under MSVC (heck, it's even different between some MSVC versions) - apparently vectors are 16 bytes with MSVC 2010, but I don't know much else.
Why are there two pointers in the gcc implementation?
Never mind, I found the stuff in the implementation, it's the pointer to the start of the vector and one element past the end, it might actually be three pointers, from what I've just read. One for the beginning, one for the end of the used range, and one for the end of the allocated space.
Then there's the allocator, which is an element that I've never touched, and I'm not sure if it is compiled to a compile time constant, or instantiated for each instance of the class.