I've 3 textures in my model class, which are:
what happens when std::vector is left empty?
Typically you want to declare your variables upon the first usage and not beforehand. Also, you don't want to declare an unused variable: this will likely produce a compiler warning and the variable is most likely removed by the compiler optimizations altogether anyways. An empty std::vector will take some bytes of memory, but the exact size depends on the used compiler, STL implementation, and target architecture. F.ex. figures for couple different MSVC implementations can be found here: http://blogs.msdn.com/b/vcblog/archive/2011/09/12/10209291.aspx
To be more clear about the 12 and 24 bytes, it's because vector (and all array class in general) stores length,capacity and pointer of data.
At the end you have 2 size_t and one data pointer of the type of the vector, in x86 each is 4 bytes, in x64 each is 8 bytes.