Arrays in C++ don't have a capacity (I assume you mean size) member because they are not an object, so they have no members! An array in C++ is essentially just a pointer. This is why you have you null-terminate your C-strings :)
I would assume with list it is because the data can be stored in different locations and arrays have a fixed size so there is no need for capacity since it would be the same as size always. In say a vector the capacity (amount of allocated memory) could be 100 and only have 20 elements in it so a size of 20. IIRC if you reach the capacity then try to insert an element it will double the capacity so in that example go from 100 to 200. That way it will reallocate as little as possible. Though the capacity can only reach the max_size. You may also change the capacity manually with the reserve method.
@ResidentBiscuit Oh sorry I forgot to mention that they were talking about std::array, sorry about that. And that is why you thought I meant the size() memeber
@giblit Thank you for your explanation, clears everything up :)